我正在使用Spring中的InternalResourceViewResolver
来呈现/WEB-INF/view
中存在的视图。我也在视图中使用JSTL。现在,问题出现在<url-pattern>
中DispatcherServlet
的{{1}}更改后。
我尝试通过web.xml
获取servlet路径,但它返回${pageContext.request.servletPath}
这是WEB-INF目录中的路径,而/WEB-INF/view/skel/welcome.jsp
返回控制器Java代码中的request.getServletPath()
。 /h2o
还会在视图文件(<% out.print(request.getServletPath()); %>
)中返回/WEB-INF/view/skel/welcome.jsp
。
它似乎来自控制器Java代码中的请求实例之间的差异。 JSP视图文件。 Request是JSP视图文件中/WEB-INF/view/skel/welcome.jsp
的实例,但它是控制器Java代码中org.apache.catalina.core.ApplicationHttpRequest
的实例。
到目前为止,幸运的是,我们单独安装它并不需要关心org.apache.catalina.connector.RequestFacade
或servlet路径。但是这个项目需要与其他系统集成,以便从视图文件获取servlet路径,以映射某些菜单或表单操作目标的正确URL。
您是否有任何想法从视图文件中获取正确的servlet路径(<uri-patter>
)?
答案 0 :(得分:6)
$ {requestScope [&#39; javax.servlet.forward.servlet_path&#39;]}也适合您。
答案 1 :(得分:1)
让控制器代码将request.getServletPath()的结果放入请求范围内的变量中,然后在JSP中使用jstl引用它。