首页 > 代码库 > springMVC 视图整合(1)

springMVC 视图整合(1)

          Spring为在Web MVC应用程序中很可能要用到的大多数视图技术提供了一流的支持。

          SpringMVC同时支持多视图例如JSPVelocity,Freemarker等。通过不同的请求路径配置规则,映射到不同的视图文件。通过Controller返回的视图模型将页面显示出来。

 

JSP

          JSP被编译为servlet并拥有完整的java语言能力,因此领域逻辑甚至数据访问逻辑都可以方便的被编码为JSP。应用程序的JSP都被放在war文件的WEB-INF目录中,客户访问不到。也就是JSPController生成的模型显示出来。

        上一篇博客写过了访问WEB-INF目录下JSP的配置。

          Controller的模型代码:

@RequestMapping("/add")
public String  addStudent(Student student,HttpServletRequestrequest){
 
    studentBean.save(student);
    return"/list";                
}

        在配置访问JSP的配置文件的时候,需要配置idViewResolver的属性,它制定将要使用的View实现类,并指定将要加在逻辑名称前后的前缀和后缀。因此当DispatcherServlet请求解析器的View的名称时,后者就会返回一个包装JSP的对象,JSP定位在/WEB-INF/jsp/list.jsp中。

 

模板技术

         VelocityFreemarker都是模板技术。他们是纯碎基于文本的引擎,两者都广泛用于产生文本输出的各种应用程序中。

        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对多视图层的支持还是很灵活的,除了支持JSpVelocity,Freemarker这种模板之外,还可以写自己的视图类型。这些视图原理上也是大同小异,通过不同的配置,最终将想要的结果显示出来。

     

      下面继续写具体的实现,敬请期待!

springMVC 视图整合(1)