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有好几个分别是:
AbstractCachingViewResol
UrlBasedViewResolver主要用于解析URL而不需要做映射处理。InternalResourceViewReso
还有一个就是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