5

我google了很多并得到答案:

<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时,它显示。

4

1 回答 1

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

于 2013-05-31T08:30:40.063 回答