Java 使用<;获取servlet路径;c:url>;或Spring的InternalResourceViewResolver中的${pageContext.request}
我正在使用Spring中的Java 使用<;获取servlet路径;c:url>;或Spring的InternalResourceViewResolver中的${pageContext.request},java,spring-mvc,Java,Spring Mvc,我正在使用Spring中的InternalResourceViewResolver来呈现/WEB-INF/view中存在的视图。我也在视图中使用JSTL。现在,问题出现在web.xml中DispatcherServlet的更改之后 我试图通过${pageContext.request.servletPath}获取servlet路径,但它返回/WEB-INF/view/skel/welcome.jsp,这是WEB-INF目录中的路径,而request.getServletPath()返回控制器Ja
InternalResourceViewResolver
来呈现/WEB-INF/view
中存在的视图。我也在视图中使用JSTL。现在,问题出现在web.xml
中DispatcherServlet
的更改之后
我试图通过${pageContext.request.servletPath}
获取servlet路径,但它返回/WEB-INF/view/skel/welcome.jsp
,这是WEB-INF目录中的路径,而request.getServletPath()
返回控制器Java代码中的/h2o
还返回视图文件中的/WEB-INF/view/skel/welcome.jsp
(/WEB-INF/view/skel/welcome.jsp
)
这似乎源于控制器Java代码和JSP视图文件中请求实例之间的差异。请求是JSP视图文件中org.apache.catalina.core.ApplicationHttpRequest
的实例,但在控制器Java代码中是org.apache.catalina.connector.RequestFacade
幸运的是,到目前为止,我们都是单独安装的,不需要关心
或servlet路径。但该项目需要和其他系统集成,以便从视图文件中获取servlet路径,以映射某个菜单或表单操作目标的正确URL
您知道如何从视图文件中获取正确的servlet路径(
/h2o
)吗?让控制器代码将request.getServletPath()的结果放入请求范围的变量中,然后在JSP中使用jstl引用该变量。让控制器代码将request.getServletPath()的结果放入请求范围的变量中,然后在JSP中用jstl引用它。${requestScope['javax.servlet.forward.servlet\u path']}也应该适用于您。${requestScope['javax.servlet.forward.servlet\u path']}也应该适用于您。谢谢。我想要的有点不同,但我可以用类似的方式解决问题。我将Java代码中的请求实例设置为名为request
的请求属性,并使用JSP视图文件--request.setAttribute(“request”,request)
中的${request.servletPath}
访问它。谢谢。我想要的有点不同,但我可以用类似的方式解决问题。我将Java代码中的请求实例设置为名为request
的请求属性,并使用JSP视图文件中的${request.servletPath}
访问它--request.setAttribute(“request”,request)
。天哪,要找到这样一个简单的信息,我们必须挖掘多少?!为什么没有“getServletPath()”方法之类的东西,我一直在努力寻找。感谢你,我的上帝,我们必须挖掘多少才能找到这样一个简单的信息?!为什么没有“getServletPath()”方法之类的东西,我一直在努力寻找。谢谢你,先生