SpringMVC框架为了避免对于请求资源路径与扩展名上的冗余,在视图解析器InternalResouceViewResolver中引入了请求的前辍与后辍。而ModelAndView中只需给出要跳转页面的文件名即可,对于具体的文件路径与文件扩展名,视图解析器会自动完成拼接。
<!--注册视图解析器--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!--前缀:表示视图所在位置--> <property name="prefix" value="/WEB-INF/view/"/> <!--后缀:视图文件的扩展名--> <property name="suffix" value=".jsp"/> <!-- 这样、如果在WEB-INF文件夹下有一个view文件夹、里边有个info.jsp 那么、就不需要写mv.setViewName("/info.jsp"); 而是、mv.setViewName("info"); --> </bean>
@RequestMapping(value = "/login.do", method = RequestMethod.POST) public ModelAndView loginCheck(String userName) { ModelAndView mv = new ModelAndView(); mv.addObject("name", userName); mv.setViewName("welcome"); return mv; }
这样、在处理器方法中返回视图的时候就不用每次都需要写视图的完整路径了,只需写名字即可、路径和扩展名由解析器来打理。