Java 如何使用Spring获得应用程序根目录的绝对路径?
我有一个应用程序可以在或运行。我有一个带有搜索表单的共享标题,需要转到installationName/search 但是,如果我使用Java 如何使用Spring获得应用程序根目录的绝对路径?,java,spring,jsp,spring-mvc,jstl,Java,Spring,Jsp,Spring Mvc,Jstl,我有一个应用程序可以在或运行。我有一个带有搜索表单的共享标题,需要转到installationName/search 但是,如果我使用,它将转到服务器的根目录,而不是tomcat应用程序 如果我使用,它将转到相对于当前页面的路径。(即 我试过和,但它们似乎都不起作用 在intelliJ中,给了我“无法解析控制器URL/search”,即使我有一个用@RequestMapping(“/search”)定义的控制器。 使用是一种方法。忽略IDE告诉您的内容。他们不擅长于此。试着运行它。Bozho是
,它将转到服务器的根目录,而不是tomcat应用程序
如果我使用
,它将转到相对于当前页面的路径。(即
我试过
和
,但它们似乎都不起作用
在intelliJ中,
给了我“无法解析控制器URL/search”,即使我有一个用@RequestMapping(“/search”)定义的控制器。
使用
是一种方法。忽略IDE告诉您的内容。他们不擅长于此。试着运行它。Bozho是正确的。我也使用了HTML基本标记:
<base href="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/" />
如果您可以将此标记放在几个地方(理想情况下只放在一个JSP中),您就可以使代码更干净。您还可以(除了其他响应器提示)使用Spring JSP标记(Spring:url),它是根据JSTL c:url标记建模的(请参见Bozhos回复)。tld参考:
此mvc的底部:资源块用于示例用途:
如果表单标记是jsp标记(可能,),则无法将c:url标记直接嵌入属性中 在这种情况下,我会采取以下措施:
<c:url var="someName" value="some uri value"/>
<sf:form path="${someName}" ...>
您是如何准备您的搜索URL的?您是直接手工在href属性中编写的吗?您的href是什么?您是否使用任何标记库?您是否将spring mvc与jsp或任何其他视图框架结合使用?抱歉,显然我没有表示thmnl,因此它需要渲染:/my bad。这仍然不起作用,我将它与dwbs answe结合起来,然后查看我想问题的一部分在于IntelliJ Idea是在/启动我的应用程序的,但它仍然位于/m/,因此应用程序上下文是/。虽然应用程序确实在/m/运行,但我不知道为什么会发生这种情况。完整的url是localhost:8080/m/,这意味着上下文路径是/m
。这反过来意味着你的无论何时使用
<c:url var="someName" value="some uri value"/>
<sf:form path="${someName}" ...>