【问题标题】:Spring MVC; avoiding file extension in url?弹簧MVC;避免 url 中的文件扩展名?
【发布时间】:2010-11-26 20:03:12
【问题描述】:

我刚开始使用 Spring Web MVC。我试图避免 url 中的文件扩展名。我怎样才能做到这一点? (我使用的是 Spring 2.5.x)

豆:

<bean name="/hello.htm" class="springapp.web.HelloController"/>

我希望它是:

<bean name="/hello" class="springapp.web.HelloController"/>

我无法让它工作。有什么想法吗?

编辑:

网址映射

<servlet-mapping>
    <servlet-name>springapp</servlet-name>
    <url-pattern>*.htm</url-pattern>
</servlet-mapping>

我尝试更改 url 模式但没有成功(* 和 /*)。

【问题讨论】:

  • 你得到这个问题的答案了吗?我正在使用弹簧 3.2

标签: java spring jsp spring-mvc


【解决方案1】:

在 3.0 中,/ 似乎可以工作。那就是……

<url-pattern>/</url-pattern>

【讨论】:

    【解决方案2】:

    据我所知,如果您使用 JSP 作为控制器的视图,则不能这样做。

    因为当您将模型传递给 JSP 时,Spring MVC 会在内部对 JSP 的 URL 执行“转发”。如果您使用&lt;url-pattern&gt;/*&lt;/url-pattern&gt;,那么这个转发也将由您的 DispatcherServlet 处理,而不是由您的 JSP 视图处理。

    您可以做的是使用&lt;url-pattern&gt;/something&lt;/url-pattern&gt; 并将您的 JSP 放在不同的目录中

    【讨论】:

      【解决方案3】:
      <servlet>
          <servlet-name>spring-mvc</servlet-name>
          <servlet-class>
              org.springframework.web.servlet.DispatcherServlet
          </servlet-class>
          <load-on-startup>1</load-on-startup>
      </servlet>
      
      <servlet-mapping>
          <servlet-name>spring-mvc</servlet-name>
          <url-pattern>/*</url-pattern>
      </servlet-mapping>
      

      然后您需要注册要由特定控制器处理的网址。见下文

      http://static.springsource.org/spring/docs/2.0.x/reference/mvc.html

      【讨论】:

      【解决方案4】:

      至少在 Spring 3.2 中,上面接受的答案非常接近但并不完全是需要的。下面的 web.xml 位对我有用,我将其添加到此处的线程中,以供下一个谷歌搜索的人参考...

      <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
      

      【讨论】:

        【解决方案5】:

        先试试吧:

        <servlet-mapping>
                <servlet-name>spring-mvc</servlet-name>
                <url-pattern>/hello</url-pattern>
        </servlet-mapping>
        

        如果这不起作用,那么问题就出在其他地方。您的 Apache 是否设置为将这些 url 转发到 Tomcat?比如:

        JkMount /hello worker1
        

        【讨论】:

        • 成功了,谢谢。你有什么想法为什么一般的 url 模式不起作用?
        【解决方案6】:

        你试过&lt;url-pattern&gt;/*&lt;/url-pattern&gt; 在 servlet 映射和&lt;bean name="/hello" .../&gt; ?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-02-07
          • 2015-07-10
          • 1970-01-01
          • 2012-11-13
          • 1970-01-01
          • 2012-04-14
          • 2014-07-12
          相关资源
          最近更新 更多