最近学习spring mvc 的restful风格,
但是用根路径访问,会调不到controller.配置如下:
web.xml
<servlet-mapping>
  <servlet-name>test</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>
如果把url-pattern改为/*,jsp也进不去,会死循环。
设置为/的话,用localhost:8080/TestSpringMVC/ 去访问,发现DispatcherServlet的doService方法也进不去,所以后面的controller更进不去。还有一点。
@RequestMapping("/")
public String page() {
  return "redirect:/index";
}
这样设置的话,
localhost:8080/TestSpringMVC/xxxx  可以进去,
localhost:8080/TestSpringMVC/xxxx/xxxx  就进不去了。
是我设置的问题?还是本身就这样,如果是这样的话有什么解决方法吗?spring  restful 根路径

解决方案 »

  1.   

    第二个问题,有一点说错了,
    @RequestMapping("*")  //或者是/*
    public String page() {
      return "redirect:/index";
    }
    可以匹配一层,/的话一层都匹配不到。
      

  2.   

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

  3.   

    这个样子就把包括jsp的请求都截获了,到达不了jsp
      

  4.   

    <url-pattern>/</url-pattern>这样配置是可以的,你可以在控制层的java类上配置如下:
    @Controller
    @RequestMapping("/web")
    public class test{ @RequestMapping(method=RequestMethod.POST)
     public String page() {
       return "redirect:/index";
     }@RequestMapping(value="/list", method=RequestMethod.POST)
     public String page1() {
       return "redirect:/index";
     }
    }http://localhost:8080/项目名称/web    这个是请求page()
    http://localhost:8080/项目名称/web/list    这个是请求page1()
      

  5.   


    你写的这些代码肯定是没问题的。
    我现在主要是想匹配
    http://localhost:8080/项目名称  这个地址,什么东西都不带的。
    <url-pattern>/</url-pattern> 这样配置的话,在我电脑上都不会被DispatcherServlet截获