2010-06-01 71 views
4

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

我知道在控制器方法中使用@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> 

回答

14

如果你想在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

注意错误的EL语法,'error_'附近的'$ {}'是不需要的。 – axtavt 2010-06-01 16:49:22

+0

指出;)gracias – Affe 2010-06-02 00:28:49

+0

如果没有控制器会怎么样?我所拥有的设置只是请求和页面之间的映射(视图),在这种情况下如何处理参数化的url。谢谢 – 2011-05-10 17:25:28

1

解决路径变量的Map暴露与名称的attirubte通过HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE specifed。所以,解决的办法是

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

但访问它这种方式可能不是一个最好的办法,是Affe的解决方案是清洁的。