我刚开始使用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而没有运气(*和/*).
答案 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" .../>
?