Spring MVC;避免url中的文件扩展名?

时间:2009-09-09 12:48:43

标签: java spring jsp spring-mvc

我刚开始使用Spring Web MVC。我正在尝试避免网址中的文件扩展。我怎样才能做到这一点? (我正在使用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-pattern而没有运气(*和/*).

6 个答案:

答案 0 :(得分:9)

在3.0中,/似乎有效。那是......

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

答案 1 :(得分:8)

据我所知,如果您使用JSP作为控制器的视图,则无法执行此操作。

因为当您将模型传递给JSP时,Spring MVC会在内部执行JSP的URL“转发”。如果使用<url-pattern>/*</url-pattern>,则此转发也将由DispatcherServlet处理,而不是由JSP视图处理。

您可以使用<url-pattern>/something</url-pattern>并将您的JSP放在不同的目录中

答案 2 :(得分:6)

<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

答案 3 :(得分:4)

至少在Spring 3.2中,上面接受的答案非常接近,但并不完全是需要的。下面的web.xml对我来说很有用,我在这里将它添加到帖子中以供参考下一个google的人...

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

答案 4 :(得分:2)

先尝试:

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

如果这不起作用那么问题就在其他地方。您的Apache是​​否设置为将这些URL转发给Tomcat?类似的东西:

JkMount /hello worker1

答案 5 :(得分:1)

你试过<url-pattern>/*</url-pattern>  在servlet映射和<bean name="/hello" .../>