SpringMVC

来源:互联网 发布:linux 删除svn版本库 编辑:程序博客网 时间:2024/06/05 15:14

有位小伙伴遇到这样一个问题:在Controller上面配置了路径,然后请求controller里面的方法找不到对应的页面。

视图解析器配置如下:

 <bean            class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="WEB-INF/jsp/" />        <property name="suffix" value=".jsp" />    </bean>

初看没什么问题,然后测试结果如下:

  • 1.如果controller上面无路径,则可以正常获取页面;
  • 2.如果controller上面有路径,找不到对应页面;

如下图所示,请求index会提示找不到对应页面(多了一级main路径):

@RequestMapping(value = "main")@Controllerpublic class MainController {    @RequestMapping(value = "index")    public ModelAndView index(HttpServletRequest request,            HttpServletResponse response) {    .....    }

这里写图片描述


如果如下所示,则正常获取页面:

@Controllerpublic class MainController {    @RequestMapping(value = "index")    public ModelAndView index(HttpServletRequest request,            HttpServletResponse response) {    .....    }

问题就出在视图解析器配置:

<bean>            class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/WEB-INF/jsp/" />        //这里WEB-INF前面一定要加上  / !!!表示相对于项目根目录        <property name="suffix" value=".jsp" /></bean>

|
如果使用相对路径<property name="prefix" value="WEB-INF/jsp/" />,则返回的视图页面会拼接上当前路径- /main/WEB-INF/jsp/default/index.jsp,当然找不到页面!!!

这同时也说明了为什么controller上面没有路径时,为什么或返回正确页面。。

原创粉丝点击