beetl-spring Beetl的Spring整合扩展(2):Beetl与Spring MVC整合

二、Beetl与Spring MVC整合

  本章主要介绍通过beetl-spring完成Beetl与Spring MVC整合的功能。和Beetl自带的BeetlSpringViewResolver及BeetlSpringView相比,本项目提供的BeetlViewResolver增强了视图解析器的功能,使多视图解析器各自使用各自的GroupTemplate以使用不同的Beetl配置成为可能。

2.1 BeetlViewResolver

  BeetlViewResolver是一个Spring MVC视图解析器实现,它具有以下属性,都是可选的:

参数名 参数类型

说明


常规配置属性

 contentType  String
用于指定Http响应包Content-Type头

默认MIME类型为text/html 字符集通过GroupTemplate使用的ResourceLoader的charset推断(如果无法获取则取当前JVM进程的默认字符集)

 prefix,suffix  String
使用模版path的前缀和后缀 默认都为空字符串

BeetlView以如下方式进行字符串拼接以得到实际传给Beetl ResourceLoader的模版path:

path = prefix + viewName + suffix;


多视图解析器配置属性

 groupTemplate  GroupTemplate
该视图解析器所使用的GroupTemplate实例

默认视图解析器会取Spring上下文中唯一的GroupTemplate

如果Spring上下文中有多个GroupTemplate,该属性必须设置

 order  int
配置视图解析器的优先级

值越小优先级越高,默认为0。当Spring上下文中有多个视图解析器时,必须设置

详情请参见本章2.3小节。

 viewNames  List<String>
配置若干个带*号通配符表示的视图名表达式,只有视图名匹配其中一个表达式才会被当前视图解析器处理(在多视图解析器的环境下,如果当前视图解析器判定不能处理该视图名,就会让下一个解析器尝试处理)

默认所有接收到的视图名都被当前视图解析器处理,通常在多视图解析器环境下应该设置。

2.2 视图名与BeetlView

  BeetlView由BeetlViewResolver根据视图名产生。一般不手工生成该对象(在使用时,BeetlView需要Spring注入一些必须的环境数据)。

  并不是所有的视图名BeetlViewResolver都一定产生BeetlView实例,有两种特殊的情况:


视图名

说明
以"redirect:"为前缀时
表示重定向,不产生BeetlView渲染模版,而直接通过Servlet的机制返回重定向响应

redirect:前缀后面的内容为重定向地址,可以采用相对地址(相对当前url),绝对地址(完整的url)

如果采用/开头的地址,会自动的在前面接上当前Web应用的contentPath,即contentPath为test的Web应用中使用

redirect:/admin/login.html 实际重定向地址为 ${contentPath}/admin/login.html

以"forward:"为前缀时
表示转发,不产生BeetlView渲染模版。而是直接通过Servlet的机制转发请求(关于转发和重定向的区别,请自行查看Servlet API)

forward:前缀后面的内容为转发地址,一般都是以/开头相对于当前Web应用的根目录

其他 产生BeetlView渲染模版输出响应

2.3 Spring多视图解析器配置

  Spring上下文中,如果有多个视图解析器实例存在,会按照视图解析器的order设置从小到大对他们进行排序处理。(这里说的视图解析器主要是说的是UrlBasedViewResolver的实现子类,只有它才支持多视图解析器并存,大部分的Spring视图解析器类都是UrlBasedViewResolver的子类)。

  判断一个视图是否由该视图解析器处理,核心的方法是UrlBasedViewResolver的canHandle(),将视图名传入返回true/false以表示该视图名是否能处理,与上文描述的一样,默认的canHandle()实现是通过比对视图名对viewNames属性设置的视图名匹配表达式来完成的。如果canHandle()返回true,则视图会交给该解析器的resolveViewName()方法以返回对应的View实例,否则交给排在后面的视图解析器处理。

  对Beetl与Spring MVC整合及多视图解析器的配置,请参见beetl-spring-web-example示例

beetl-spring Beetl的Spring整合扩展(2):Beetl与Spring MVC整合

时间: 2024-10-20 09:23:33

beetl-spring Beetl的Spring整合扩展(2):Beetl与Spring MVC整合的相关文章

Spring与Struts2整合VS Spring与Spring MVC整合

Spring与Struts2整合,struts.xml在src目录下 1.在web.xml配置监听器 web.xml <!-- 配置Spring的用于初始化ApplicationContext的监听器 --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <contex

spring mvc整合mybaitis和log4j

在上一篇博客中,我介绍了在mac os上用idea搭建spring mvc的maven工程,但是一个完整的项目肯定需要数据库和日志管理,下面我就介绍下spring mvc整合mybatis和log4j 一.先把需要用到的jar包配置到pom.xml上(主要是mybaitis和mysql驱动包) <!-- mybatis/spring包 --> <dependency> <groupId>org.mybatis</groupId> <artifactId

Spring+Hibernate整合配置 --- 比较完整的spring、hibernate 配置

Spring+Hibernate整合配置 分类: J2EE2010-11-25 17:21 16667人阅读 评论(1) 收藏 举报 springhibernateclassactionservletmysql 在公司一直没有什么机会直接折腾SSH“原生态”的SSH当今比较流行的轻量级的框架,用着公司的框架也是郁闷异常,今天没事整整原来用过的一个项目的配置,发现就算是自己曾经用过的东西,如果较长时间不返过去重新学习,许多你半熟不熟的知识就是异常陌生.下面贴上我的一些配置,暂且权当备份吧. web

Spring mvc整合mybatis基于mysql数据库实现用户增删改查及其分页显示的完整入门实例【转】

Spring mvc整合mybatis例子, 基于mysql数据库实现对用户的增.删.改.查,及分页显示的完整例子. 查询显示用户 添加用户 更新用户 官方验证: 项目截图 必须修改applicationContext.xml中mysql的配置为本地的,否则启动失败. 另外jar包多一个ehcache.jar无关紧要,删除即可. 1. 使用阿里巴巴Druid连接池(高效.功能强大.可扩展性好的数据库连接池.监控数据库访问性能.支持Common-Logging.Log4j和JdkLog,监控数据库

spring MVC 整合mongodb

Spring Mongodb 目录 1 SPRING整合MONGODB 1 1.1 环境准备 1 1.2 包依赖 1 1.3 配置 2 2 案列 5 2.1 SPRING MVC整合MONGODB代码案例 5 1 Spring整合Mongodb 1.1 环境准备 1. mongodb官网 http://www.mongodb.org/,下载mongodb安装包和mongodb的java驱动包. mongodb安装包(下载地址http://www.mongodb.org/downloads).Mo

Spring MVC整合Mybatis 入门

本文记录使用Intellij创建Maven Web工程搭建Spring MVC + Mybatis 的一个非常简单的示例.关于Mybatis的入门使用可参考这篇文章,本文在该文的基础上,引入了Spring MVC功能.首先是创建项目: 打开Intellij,File-->new Project--->选中,Maven--->勾上"Create from archetype"--->选择 Maven web project.如下图: 一步步Next,等待工程Bui

MyBatis+Spring+Spring MVC整合开发

MyBatis+Spring+Spring MVC整合开发课程观看地址:http://www.xuetuwuyou.com/course/65课程出自学途无忧网:http://www.xuetuwuyou.com 课程介绍一.课程用到的软件:1.jdk 1.82.eclispe luna3.tomcat 84.MySQL 5.1 +5.navicat 9 + 二.课程涉及到的技术点1.MyBatis基础,主要介绍2.MyBatis高级,3.SpringMVC基础4.SpringMVC高级5.My

struts2,hibernate,spring整合笔记(4)--struts与spring的整合

饭要一口一口吃,程序也要一步一步写, 很多看起来很复杂的东西最初都是很简单的 下面要整合struts和spring spring就是我们的管家,原来我们费事费神的问题统统扔给她就好了 先写一个测试方法 package com.hibernate; import static org.junit.Assert.*; import org.hibernate.SessionFactory; import org.junit.Test; import org.springframework.conte

spring和spring MVC整合

spring和springMVC之间的整合,springMVC中的jar包包含spring中的jar包,所以无需再另外导入jar包,只需导入springMVC的jar包即可. 如图一所示: 这个时候,再新建两个源文件夹,一个为config专门放配置文件,另外一个为test,专门用来放进行测试的程序,在这个整合的小项目中,本身 并没有用上test源文件夹,但是加上倒也不错. 现在,在config文件夹中新建两个xml文件,一个为spring的配置文件,为applicationContext.xml