在Spring MVC 3中的Restful路径参数

IT小君   2023-09-16T19:50:50

是否可以在*-servlet.xml文件的mvc:view-controller元素中设置URI模板,或者在控制器方法中设置,然后在jsp中使用/获取该路径参数?

我知道在控制器方法中使用@PathVariable可以让我在该控制器方法中访问路径参数。但是我如何在jsp中访问路径参数?

例如,是否可以这样做:

*-servlet.xml文件:

<beans...>
<mvc:view-controller path="/home" view-name="home"/>
<mvc:view-controller path="/home/{error}" view-name="home"/>
</beans>

jsp文件:

<c:if test="${not empty param['error']}">
<span class="error">您有一个错误...</span>
</c:if>
评论(2)
IT小君

如果你想在jsp中访问它,从控制器中作为属性返回:

@RequestMapping("/home/{error}")
public void handleError(@PathVariable String error, ModelMap model) {
    //你的常规代码

    model.addAttribute("error", error);
}

-

<c:if test="${not empty error}">
<span class="error">你有一个错误...</span>
</c:if>
2023-09-16T19:50:57   回复
IT小君

解析的路径变量的Map以由HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE指定的名称作为属性暴露。因此,解决方案是

<c:if test="${not empty requestScope['org.springframework.web.servlet.HandlerMapping.uriTemplateVariables']['error']}">

但是,以这种方式访问可能不是最好的主意,Affe的解决方案更简洁。

2023-09-16T19:51:03   回复