首页 > 代码库 > springMVC 视图整合(1)
springMVC 视图整合(1)
Spring为在Web MVC应用程序中很可能要用到的大多数视图技术提供了一流的支持。
SpringMVC同时支持多视图例如JSP,Velocity,Freemarker等。通过不同的请求路径配置规则,映射到不同的视图文件。通过Controller返回的视图模型将页面显示出来。
JSP
JSP被编译为servlet并拥有完整的java语言能力,因此领域逻辑甚至数据访问逻辑都可以方便的被编码为JSP。应用程序的JSP都被放在war文件的WEB-INF目录中,客户访问不到。也就是JSP将Controller生成的模型显示出来。
上一篇博客写过了访问WEB-INF目录下JSP的配置。
Controller的模型代码:
@RequestMapping("/add") public String addStudent(Student student,HttpServletRequestrequest){ studentBean.save(student); return"/list"; }
在配置访问JSP的配置文件的时候,需要配置id为ViewResolver的属性,它制定将要使用的View实现类,并指定将要加在逻辑名称前后的前缀和后缀。因此当DispatcherServlet请求解析器的View的名称时,后者就会返回一个包装JSP的对象,JSP定位在/WEB-INF/jsp/list.jsp中。
模板技术
Velocity和Freemarker都是模板技术。他们是纯碎基于文本的引擎,两者都广泛用于产生文本输出的各种应用程序中。
与JSp不同的是,模板不被编译到Java类中,而是由其各自的模板引擎来解释。
优点:使得表现层和业务逻辑层分离。
模板+数据模型=输出。模板只负责数据在页面中的表现,不涉及任何的逻辑代码,所有的逻辑由数据模型处理。
不能轻易突破模板语言而编写Java代码。
缺点:需要修改模板后,如果不及时更新HTML页也会出旧数据。
配置:
<!--velocity配置 start 刘腾腾--> <beanid="velocityResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"> <property name="prefix"value=http://www.mamicode.com/""/>>
总结:
SpringMVC对多视图层的支持还是很灵活的,除了支持JSp,Velocity,Freemarker这种模板之外,还可以写自己的视图类型。这些视图原理上也是大同小异,通过不同的配置,最终将想要的结果显示出来。
下面继续写具体的实现,敬请期待!
springMVC 视图整合(1)