1

我正在使用InternalResourceViewResolverSpring 来呈现存在于/WEB-INF/view. 我也在视图中使用 JSTL。现在问题出现在更改in<url-pattern>之后。DispatcherServletweb.xml

我试图通过它获取 servlet 路径,${pageContext.request.servletPath}但它返回/WEB-INF/view/skel/welcome.jsp的是 WEB-INF 目录的路径,而request.getServletPath()返回/h2o的是控制器 Java 代码内部。<% out.print(request.getServletPath()); %>也在/WEB-INF/view/skel/welcome.jsp视图文件 ( /WEB-INF/view/skel/welcome.jsp) 中返回。

它似乎来自控制器 Java 代码和 JSP 视图文件中的请求实例之间的差异。请求是org.apache.catalina.core.ApplicationHttpRequestJSP 视图文件中的实例,但它是org.apache.catalina.connector.RequestFacade控制器 Java 代码中的实例。

到目前为止,幸运的是,我们单独安装它,不需要关心<uri-patter>或 servlet 路径。但是这个项目需要与其他系统集成,因此从视图文件中获取 servlet 路径以映射某些菜单或表单操作目标的正确 URL。

您是否知道/h2o从视图文件中获取正确的 servlet 路径()?

4

2 回答 2

7

${requestScope['javax.servlet.forward.servlet_path']} 也应该为您工作。

于 2014-05-20T20:43:41.977 回答
1

让控制器代码将 request.getServletPath() 的结果放入请求范围内的变量中,然后在 JSP 中使用 jstl 引用它。

于 2013-01-12T16:59:32.553 回答