在springmvc的配置中,很重要的一个就是viewResolver,中文叫做视图解析器。他的作用就是处理MVC模式下从C到V的连接。视图可以使jsp的,也可以是velocity的,也可以是freemarker的,针对于不同的视图,springmvc定义了不同的视图解析器,所有的这些在org.springframework.web.servlet.view.UrlBasedViewResolver类的源码中都可以找到。今天我就把我对这个类的源码的总结记录下来。
视图解析器有很多个,一般的我们使用jsp作为视图的时候会使用org.springframework.web.servlet.view.InternalResourceViewResolver,使用velocity作为视图时会选择org.springframework.web.servlet.view.velocity.VelocityViewResolver,他们的共同的配置都在这个UrlBasedViewResolver中。
普遍的配置如下:prefix="/WEB-INF/JSP/" suffix=".jsp" 从controller返回的viewname是test,那么最终的跳转到的是/WEB-INF/jsp/test.jsp。
1、redirect:
如果一个路径是以redirect开头的,比如“redirect:myAction.do”,会出发一个重定向的指令,即302,而不是和普通的路径一样找视图。
2、forward:
如果一个路径是以forward开头的,比如forward:myAction.do就会出发一次新的访问,就是重新访问一次springmvc的servlet,这个就像是我们在使用servlet开发时的forward,只不过servlet中的forward是跳转的有jsp生成的servlet。
3、配置多个resolver,