【问题标题】:How do we get the absolute path to the applications root directory using Spring?我们如何使用 Spring 获取应用程序根目录的绝对路径?
【发布时间】:2011-01-10 18:01:41
【问题描述】:

我有一个可以在http://serverA/m/http://serverA/mobile/ 运行的应用程序。我有一个带有搜索表单的共享标题,需要转到 http://serverA/installationName/search。

但是,如果我使用<form action="/search">,它会转到服务器的根目录,而不是 tomcat 应用程序。

如果我使用<form action="search">,它会转到相对于当前页面的路径。 (即http://serverA/m/someOtherPage/search

我尝试过<c:url value="search"><c:url value="/search">,但它们似乎都不起作用。

在 intelliJ 中,<c:url value="/search"> 给了我“无法解析控制器 URL /search”,即使我有一个使用 @RequestMapping("/search") 定义的控制器

【问题讨论】:

  • 您是如何准备搜索 URL 的?是直接手写在href属性里吗?你的href是什么?你使用任何标签库吗?你是否将 spring-mvc 与 jsp 或任何其他视图框架一起使用?

标签: java spring jsp spring-mvc jstl


【解决方案1】:
<form action="<c:url value="/search" />" />

使用&lt;c:url&gt; 是一种方式。忽略 IDE 告诉您的内容。他们不擅长那个。尝试运行它。

【讨论】:

  • 对不起,显然我没有表示 thmnl 所以它试图渲染:/我的错。
  • 这还是不行,我要把它和dwbs answe结合起来看看我想出了什么
  • 我相信部分问题是 IntelliJ Idea 在 / 启动我的应用程序,但它仍然驻留在 /m/,因此应用程序上下文是 /。而应用程序真正运行在 /m/ 我不知道为什么会发生这种情况。
  • 嗯,完整的 url 是 localhost:8080/m/
  • 表示上下文路径是/m。这反过来意味着您的链接将在您使用 &lt;c:url&gt; 时预先添加 /m
【解决方案2】:

博卓是对的。我也使用过 HTML BASE 标签:

<base href="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/" />

如果你可以把这个标签放在几个地方(最好只放在一个 JSP 中),你可以让你的代码更简洁。

【讨论】:

    【解决方案3】:

    您可以(除了其他响应者提示)还可以使用 Spring JSP 标记 (spring:url),该标记以 JSTL c:url 标记为模型(参见 Bozhos 回复)。顶级域名参考:

    http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/spring.tld.html#spring.tld.url

    这个 mvc:resources 块的底部作为示例使用:

    http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-static-resources

    【讨论】:

      【解决方案4】:

      如果你的表单标签是一个jsp标签(也许是

      ),你将不能直接在属性中嵌入c:url标签。

      在这种情况下,我会执行以下操作:

      <c:url var="someName" value="some uri value"/>
      <sf:form path="${someName}" ...>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-21
        • 2022-11-23
        • 2011-09-30
        相关资源
        最近更新 更多