如何在spring mvc项目中使用jstl获取requestURI?

时间:2013-05-31 08:20:54

标签: spring jsp spring-mvc jstl

我谷歌很多并得到答案:

<c:out value="${pageContext.request.requestURI}" />

但我得到/myapp/WEB-INF/views/index.jsp

我想获得/myapp/index

我该怎么做?

我的项目是使用spring mvc。 我在spring-mvc.xml中的配置:

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
         <property name="prefix" value="/WEB-INF/views/"/>
         <property name="suffix" value=".jsp"/>
</bean>

在我的/ WEB-INF / views /中,有一个index.jsp

我的控制器:

@RequestMapping("/index")
public String welcome() {
    return "index";
}

当我查看localhost:8088/myapp/index时,会显示。

1 个答案:

答案 0 :(得分:12)

尝试使用${requestScope['javax.servlet.forward.servlet_path']}

javax.servlet.forward.*常量根据传递给getRequestDispatcher()的URI检索信息(在Spring Web MVC的情况下,DispatcherServlet在处理请求时设置此属性)。但它独立于框架和Web容器。

正如文档所说FORWARD_SERVLET_PATH是:

  

请求属性的名称,在该名称下,原始servlet路径可用于转发目标

您还应该记住,如果forward()通过调用getNamedDispatcher()起作用,这些属性(还有4个类似属性:request_uricontext_path,{{1} }和path_info)未设置,因为在这种情况下,路径的初始元素不会更改。