熬之滴水穿石:Spring--精简的J2EE(6)
48--曾用过的View
在Spring MVC架构中View实际上是有多种选择的。JSP是首选的view,实际上在J2EE规范中JSP已经是制定的页面模板技术了。在很多时候,俨然都已经成了一种标准。我在09年做电子商城时,在Spring mvc中view使用的就是Velocity。Velocity也同样归属于模板技术,它们使用语法和JSP 2.0中很相同。当然还有一种FreeMarker的和它很是相似,另外PDF和Excel也可以作为视图使用,后面这几种我都没有用过。在视图这个章节,主要是说说在Spring的框架下,如果使用它的。
在中Spring中的ViewResolver,可以从View中把Contrller解脱出来(解耦)。只要在控制器中,简单的指定一个View的逻辑名称,Spring就能把这个名称解析为指定的View类型(view type)。之前谈到了ModelAndView类,由控制器返回的类,该类包含了一个view。View接口会预处理请示,并把它传递给你事先配置好的View。在Spring中View Resolver有好几个分别是:
AbstractCachingViewResolver:该视图解析器可以自定义并且可使用缓存。
ResourceBundleViewResolver这个比较熟,因为用的最多主要使用各种view,像jsp和velocity就是通过该实现。
UrlBasedViewResolver主要用于解析URL而不需要做映射处理。InternalResourceViewResolver使用JSP还有和velocity类似的模板技术和Tiles,jstlview。
还有一个就是VelocityViewResolver这个就是支持Velocity模板技术的。
这里我熟悉view也就是Velociy,当然如果jsp也算的话也是其中一个。Velocity是一个开源项目,它主要用于为浏览器生成动态网页。由于是一种模板技术,可以将它运用在任何需要模板的地方。Velocit是在J2EE容器内运行,和JSP比较它表现出更快的响应和更好的性能。Velocity自带的模板语言和JSP 2.0的EL基本等同。所以在Velocity中,只要你了解过EL表达式,使用其语法还是很简单的。Velocity的原理是,数据放入context后,velocity从中取到数据,然后在页面将其表现出来。
View Resolver配置是需要在web程序的classpath目录中添加velocity.properties文件。该文件就是告诉我们的view应该使用哪种导入模板。在Spring中可以提供VelocityConfigurer类为页面指定一个路径。这样的步骤通常可以在web/WEB-INF下相应的serlvet配置文件配置好velocity中加载模板。然后声明VelocityViewResolver作为应用程序的View Resolver。属性定义当属 exposeSpringMacroHelpers 和requestContextAttribute最为重要。前者是处理表单和验证错误信息的宏操作,后者其实是RequestContext的一个别名。这个类用一般用于messages.properties文件打印本地化的信息。VelocityViewResolver的父是AbstractTemplateViewResolver继承而来的。当然使用velocity时,还需要在*-servlet.xml文件中指定两个bean定义VelocityConfigurer和VelocityViewResolver,当然模板是必须要准备的,还需要用到VTL来编写页面。Velocity所有的页面都是以.VM结尾的。Velocity简练的的语法。使用模板初始加载会快,编译速度也会比JSP快。
(未完待续......)
熬之滴水穿石:Spring--精简的J2EE(6)的更多相关文章
- 熬之滴水穿石:Spring--精简的J2EE(5)
47--Spring的MVC 在Spring的框架中也存在MVC这样的模式,在Spring下有2个这样的控制器一个叫Controller, ...
- 熬之滴水穿石:JSP--HTML中的JAVA代码(6)
39--JSTL 在JSP编码中需考虑的一种方法,因为这种方法可以 ...
- spring入门教程——笔记
Spring学习笔记(1)----简单的实例 --------------------------------- 首先需要准备Spring包,可从官方网站上下载. 下载解压后,必须的两个包是s ...
- 不错的Spring学习笔记(转)
Spring学习笔记(1)----简单的实例 --------------------------------- 首先需要准备Spring包,可从官方网站上下载. 下载解压后,必须的两个包是s ...
- Spring框架IOC容器和AOP解析
主要分析点: 一.Spring开源框架的简介 二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面向切面编程(AOP)和事务管理配置 一.S ...
- Spring MVC 学习总结(七)——FreeMarker模板引擎与动态页面静态化
模板引擎可以让程序实现界面与数据分离,业务代码与逻辑代码的分离,这就提升了开发效率,良好的设计也使得代码复用变得更加容易.一般的模板引擎都包含一个模板解析器和一套标记语言,好的模板引擎有简洁的语法规则 ...
- 13.SpringMVC和Spring集成(一) && 14.SpringMVC和Spring集成(二)
1.概念 Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,Spring致力于J2EE应用的各层的解决方案,Spring是企业应用开发的“一站式”选择,并贯 ...
- Spring实战1:Spring初探
主要内容 Spring的使命--简化Java开发 Spring容器 Spring的整体架构 Spring的新发展 现在的Java程序员赶上了好时候.在将近20年的历史中,Java的发展历经沉浮.尽管有 ...
- 什么是Spring?Spring是什么?
Spring概述: Spring是一个开源框架,是为了解决企业应用程序开发复杂性而开发的. 从简单性.可測试性和松耦合的角度而言,不论什么java应用都能够从Spring中受益. 简而言之,Sprin ...
随机推荐
- 配置BeanUtils包,同时也是对导入第三包的步骤说明
BeanUtils是由Apache公司开发的针对操作JavaBean的工具包. 对于JavaBean,简单的来说,就是要有一个空参的构造器和对属性的getXXX方法和setXXX方法. 在由JDK提供 ...
- Java实现定时任务的三种方法(转)
在应用里经常都有用到在后台跑定时任务的需求.举个例子,比如需要在服务后台跑一个定时任务来进行非实时计算,清除临时数据.文件等.在本文里,我会给大家介绍3种不同的实现方法: 普通thread实现 Tim ...
- OCA读书笔记(5) - 管理ASM实例
Objectives:Describe the benefits of using ASMManage the ASM instanceCreate and drop ASM disk groupsE ...
- 图解UML类与类之间的六中关系
大话设计模式上的一个图,我用EA画出来的: UML中的6大关系相关英文及音标: 依赖关系 dependency [di'pendənsi] 关联关系 association [ə,səuʃi' ...
- 6.0RMB MP3所看到的……
产品篇: 偶然看到这个商品信息,作为电子开发人员,首先想到的便是采用了哪家芯片方案,怎么做到这么低的价格! 于是立刻买了一台回来,拆机如下: 成本BOM: ...
- 用Python实现QQ找茬游戏外挂工具
源地址:http://cpiz.net/blog/2012/03/a_qq_zhaocha_assistant_by_python/ (原创作品,转载请注明出处)好久没写技术相关的博文,这次写篇有意思 ...
- 与众不同 windows phone (29) - Communication(通信)之与 OData 服务通信
原文:与众不同 windows phone (29) - Communication(通信)之与 OData 服务通信 [索引页][源码下载] 与众不同 windows phone (29) - Co ...
- MVC之国际化
MVC之国际化 前言 在项目中遇到国际化语言的问题是常有的事情,之前在做关于MVC国际化语言时,刚开始打算全部利用AngularJS来实现,但是渐渐发现对于页面Title难以去控制其语言转换,于是对于 ...
- Linux下的softlink和hardlink(转)
Linux中包括两种链接:硬链接(hard link)和软链接(soft link),软链接又称为符号链接(symbolic link) 创建命令:ln -s destfile/directory s ...
- Graphviz 绘制流程图
凝视说明非常具体.不再详述. digraph G{ //dot 是一种画图语言,它能够方便你採用图形的方式高速.直观地表达一些想法, //比方描写叙述某个问题的解决方式,构思一个程序的流程,澄清一堆貌 ...