Spring mvc 使用SpringMVC的URL映射问题

Spring mvc 使用SpringMVC的URL映射问题,spring-mvc,web.xml,url-mapping,Spring Mvc,Web.xml,Url Mapping,我有一个非常基本的设置,我正在努力工作 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&

我有一个非常基本的设置,我正在努力工作

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>/site/*</url-pattern>
</servlet-mapping>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/mvc-dispatcher-servlet.xml</param-value>
</context-param>
<context:component-scan base-package="com.blabla.controller" />
<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"
    p:prefix="/WEB-INF/pages/" p:suffix=".jsp"
    p:viewClass="org.springframework.web.servlet.view.JstlView" />
这就是我的问题: 我想将/site/*写为web.xml中的url模式,但当我这样做时,我得到了

警告:在名为“mvc dispatcher”的DispatcherServlet中找不到URI为[/site/welcome]的HTTP请求的映射

当我完整地编写/site/welcome时,一切都正常,但我不希望这样,因为我不想手动将每个页面添加到web.xml

当我将“/*”写入url模式时,我会收到错误消息:

 WARNING: No mapping found for HTTP request with URI [/WEB-INF/pages/test.jsp] in DispatcherServlet with name 'mvc-dispatcher'
我想这是有意义的,因为jsp的位置包含在模式中


那么,如何做到这一点:如果没有我刚才遇到的问题,您的url模式怎么可能足够模糊?

在web.xml中,我认为您需要将servlet映射url模式设置为/。否则,我认为您的控制器将映射到/site/site/welcome。这确实有效。非常感谢。但我还是宁愿使用/site/*映射。你也知道为什么那对我不起作用吗?没关系,我现在明白了。我需要去掉控制器类上的requestMapping,然后web.xml中的/site/*映射就可以工作了。这是另一个选项,但现在您只能使用一个控制器来处理所有站点映射。如果您有一个小型应用程序,这可能不是坏事,但如果控制器代码失控,则可能会导致问题。
 WARNING: No mapping found for HTTP request with URI [/WEB-INF/pages/test.jsp] in DispatcherServlet with name 'mvc-dispatcher'