为REST样式URL配置DispatcherServlet

dco*_*led 0 jsp spring-mvc spring-annotations

我正在尝试学习Spring MVC基础知识,并解决URL被解析为控制器的问题.我正在使用本教程作为跳板.我可以在tomcat下运行它并且url /context/welcome.htm解析为注释为的控制器:

@Controller
@RequestMapping("/welcome")
public class HelloWorldController
Run Code Online (Sandbox Code Playgroud)

使用配置web.xml

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>*.htm</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

我希望能够键入/ context/welcome并解析HelloWorldController,但这不起作用.我已经尝试设置*但这会导致servlet无法加载.如果有人可以解释为什么这个url模式无效,以及如何配置此控制器以处理所有请求,例如/ welcome和/ welcome,而不仅仅是那些以*.htm结尾的请求,我们将不胜感激.在ASP.NET MVC中,提供了一个路由页面来调试此类控制器映射问题.使用Spring的最佳方法是什么?

小智 5

试试这个 :

<servlet-mapping>
   <servlet-name>mvc-dispatcher</servlet-name>
   <url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

模式/*将把所有内容都放在你的servlet中.

模式/使您的servlet成为应用程序的默认servlet,这意味着它将获取没有其他完全匹配的每个模式.