Spring的MVC控制器返回ModelMap时,会跳转到什么页面?

控制器中的方法如下:

    @RequestMapping("/person/personDisplay") 
    public ModelMap defaultHandler() { 
        System.out.println("hahaha");
        return new ModelMap("personList", this.dummyService.getDummyList()); 
    } 

对于以上函数,返回后,页面将会跳转到“前缀+person/personDisplay+后缀”所表示的页面。——注意,最前面的反斜杠会被去掉。如果spring配置文件中的配置如下:

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
        <property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property> 
        <property name="prefix"><value>/jsp/</value></property> 
        <property name="suffix"><value>.jsp</value></property> 

那么函数将会返回到“/jsp/person/personDisplay.jsp”页面。

如果@RequestMapping("/person/personDisplay") 处改为@RequestMapping("person/personDisplay") 又当如何呢?有没有最左端的反斜杠“/”对于spring返回的视图都是一样的,页面同样会跳转到“/jsp/person/personDisplay.jsp”页面。以上两者的区别是反斜杠代表工程的根目录,所以像/MyProject/person/personDisplay.htm的请求,只能被前者捕获到,而后者捕获不到。后者的写法在实际中是不值得提倡的。

posted on 2013-10-22 23:42  大油蛙  阅读(1394)  评论(0编辑  收藏  举报

导航