是否可以:在* -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>
答案 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的解决方案更清晰。