以下是web.xml中的配置,当路径配置为:/test/*,这样是匹配不到对应注解的方法的,但是如果将路径改为/test/add,这样变可以访问到我加了requestmapping注解的add方法,请问有哪位大神能解答一下吗?感谢!
  <servlet>
    <servlet-name>spring-mvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>/WEB-INF/spring-mvc-servlet.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>spring-mvc</servlet-name>
    <url-pattern>/test/*</url-pattern>
  </servlet-mapping>

解决方案 »

  1.   

    在web.xml 配置DispatcherServlet时 将url-pattern配置成下面的形式:
    <url-pattern>/rest/*</url-pattern>
    1
    在Controller中 方法名上面的映射路径配置成下面几种情况: 1. /rest/url/url2 
    浏览器中输入 localhost:8080/rest/url/url2 
    是访问不到该资源的
    2. /url/url2 这样在浏览器中访问 localhost:8080/rest/url/url2是可以访问到的
    思考: 
    url-patter呢 /xx/* 这种形式 在映射到controller的时候 * 之前路径被滤掉,只匹配最后一个*的。 
    实验1: 
    urlpattern 配置为 /rest/path/* 
    @requetMapping 配置为 /url 
    此时浏览器访问 localhost:8080/rest/path/url 才能访问到 
    实验二: 
    urlpattern 配置为 /rest/path 这相当于精确配置(注意path后面不能有/) 
    所以 
    @requetMapping 配置也必须为 /rest/path 
    此时浏览器访问 localhost:8080/rest/path 才能访问到