Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用<;获取servlet路径;c:url>;或Spring的InternalResourceViewResolver中的${pageContext.request}_Java_Spring Mvc - Fatal编程技术网

Java 使用<;获取servlet路径;c:url>;或Spring的InternalResourceViewResolver中的${pageContext.request}

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

我正在使用Spring中的
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()”方法之类的东西,我一直在努力寻找。谢谢你,先生