Spring MVC 3中的Restful Path参数

时间:2010-06-01 15:24:36

标签: java spring rest

是否可以:在* -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">You have an error...</span>
</c:if>

2 个答案:

答案 0 :(得分:16)

如果要在jsp中访问它,请将其作为属性从控制器返回:

@RequestMapping("/home/{error}")
public void handleError(@PathVariable String error, ModelMap model) {
    //your regular stuff

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

-

<c:if test="${not empty error}">
<span class="error">You have an error...</span>
</c:if>

答案 1 :(得分:1)

已解析的路径变量的Map公开为名称由HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE指定的attirubte。所以,解决方案是

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

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