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

sec*_*ing 5 spring jsp jstl spring-mvc

我谷歌很多,并得到一个答案:

<c:out value="${pageContext.request.requestURI}" />
Run Code Online (Sandbox Code Playgroud)

但我明白了 /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>
Run Code Online (Sandbox Code Playgroud)

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

我的控制器:

@RequestMapping("/index")
public String welcome() {
    return "index";
}
Run Code Online (Sandbox Code Playgroud)

当我看localhost:8088/myapp/index,它显示.

Pat*_*son 12

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

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

正如文档所说FORWARD_SERVLET_PATH:

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

你也应该记住,如果该forward()作品通过调用getNamedDispatcher(),这些属性(有4个类似的属性:request_uri,context_path,path_infoquery_string)不是在这种情况下,路径的初始元素不会改变,因为设定.