【问题标题】:Restful Path Parameters in Spring MVC 3Spring MVC 3 中的 Restful 路径参数
【发布时间】:2010-06-01 15:24:36
【问题描述】:

是否可以:在 *-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>

【问题讨论】:

    标签: java spring rest


    【解决方案1】:

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

    【讨论】:

    • 注意错误的EL语法,error附近的${}是不需要的。
    • 如果没有控制器怎么办?我的设置只是请求和页面(视图)之间的映射,在这种情况下你将如何处理参数化的 url。谢谢
    【解决方案2】:

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

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

    但是以这种方式访问​​它可能不是一个好主意,Affe 的解决方案更干净。

    【讨论】:

      猜你喜欢
      • 2016-09-21
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 2011-03-06
      相关资源
      最近更新 更多