Spring学习的书-夏昕(2)

来源:互联网 发布:微商三级分销系统源码 编辑:程序博客网 时间:2024/03/29 18:44

<文摘>  

基于模板的Web表示层技术

 

   模板技术相对传统JSP技术有以下三个主要优势:
1. 在技术层面,将表现逻辑与业务逻辑相分离。
2. 为人员之间的分工提供了一个良好的分界点。页面美工只需专著关心模板的设计,而程
序员则专注于业务逻辑的实现。二者重合点明显减少。
3. 如果需要,模板引擎可脱离Web 容器单独运行,这为系统可能的移植需求提供了更多
的弹性空间(这一特性在应用中也许并不会有太大的实际意义,只是提供了一种附加选
择)。

 

   目前Spring支持一下几种模板技术:

1. XSLT
XSLT是基于XML的表现层模板技术,伴随着XML的大量使用。XSLT也日渐成熟,并
迅速成为主流表现层技术之一。XSLT技术提供了极佳的扩展性和重用性,
也保证了业务逻辑和表示逻辑的清晰划分,然而,最大的问题是,XSLT缺乏强有力的编辑
器支持。(XSLT 中,每个节点都是一个Java 对象,大量
对象的存储对内存占用极大,同时大量对象的频繁创建和销毁也对JVM 垃圾收集产生了较
大负面影响)。

 

2. Velocity
Velocity是Apache Jakarta项目中的一个子项目,它提供了丰富强大的模板功能。
作为目前最为成熟的模板支持实现,Velocity 在诸多项目中得到了广泛应用,不仅
限于Web 开发,在众多代码生成系统中,我们也可以看到Velocity 的身影(如
Hibernate中的代码生成工具)。


3. FreeMarker
FreeMarker是Velocity之外的另一个模板组件。

    与Velocity 相比,FreeMarker 对表现逻辑和业务逻辑的划分更为严格,
Freemarker在模板中不允许对Servlet API进行直接操作(而Velocity可以),
如FreeMarker 中禁止对HttpServletRequest 对象直接访问(但可以访问
HttpServletRequest对象中的Attribute)。通过更加严格的隔离机制,牵涉逻
辑处理的操作被强制转移到逻辑层。从而完全保证了层次之间的清晰性。


    另外一个Velocity无法实现的特性,也是最具备实际意义的特性:FreeMarker对
JSP Tag提供了良好支持。

 

    这里推荐采用FreeMarker作为Spring MVC中的表现层实现。

 

 

    输入验证与数据绑定
Spring Framework提供了强大的输入验证和数据绑定功能。结合输入验证器和
<spring:bind>tag,传统繁杂混乱的输入校验功能将变得更加清晰简单。

 

    Spring MVC中的异常处理:  /p63
以前面的注册系统为例,首先,在Dispatcher配置文件Config.xml中增加id为
“exceptionResolver”的bean定义

    通过SimpleMappingExceptionResolver我们可以将不同的异常映射到不同的jsp页
面(通过exceptionMappings属性的配置),同时我们也可以为所有的异常指定一个默认的异
常提示页面(通过defaultErrorView属性的配置),如果所抛出的异常在exceptionMappings
中没有对应的映射,则Spring将用此默认配置显示异常信息(注意这里配置的异常显示界面均
仅包括主文件名,至于文件路径和后缀已经在viewResolver中指定)。

 

   国际化支持

   Spring中目前提供了以下几种语言自动切换机制的实现(均实现了LocaleResolver接口):
Ø AcceptHeaderLocaleResolver
根据浏览器Http Header中的accept-language域判定(accept-language域中
一般包含了当前操作系统的语言设定,可通过HttpServletRequest.getLocale方法
获得此域的内容)。
Ø SessionLocaleResolver
2Windows可以通过控制面板中的“区域和语言选项”快速切换系统Locale设定,Linux可通
过export LANG=zh_CN; LC_ALL=zh_CN.GBK 命令修改当前Locale。
SpringFrameWork Developer’s Guide Version 0.6
October 8, 2004 So many open source projects. Why not Open your Documents?
根据用户本次会话过程中的语言设定决定语言种类(如:用户登录时选择语言种
类,则此次登录周期内统一使用此语言设定)。
Ø CookieLocaleResolver
根据Cookie判定用户的语言设定(Cookie中保存着用户前一次的语言设定参
数)。

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 橙光游戏2.0商城怎么办 飞羽花卷叶了怎么办 孔雀竹芋叶子发黄卷曲怎么办 孔雀竹芋叶子黄了卷了怎么办 飞羽竹芋叶尖黄怎么办 十七岁还是胸小怎么办 英雄联盟连接不上服务器怎么办 彩叶草叶子蔫了怎么办 家里种葱老是死怎么办 非洲菊生虫子了怎么办 多肉的花剪下来怎么办 结石痛怎么办怎么止疼 喝玫瑰花茶胃疼怎么办 卡地亚戒指掉色怎么办 苹果8plus掉电快怎么办 苹果8plus耗电快怎么办 卡地亚戒指划痕怎么办 苹果手机玫瑰金掉色怎么办 14k玫瑰金掉色怎么办 卡地亚手镯掉色怎么办 手机掉油漆里了怎么办 黄金戴久了变黑怎么办 玫瑰金褪色不亮了怎么办 黄金带久了不亮怎么办 玉石带久了不亮怎么办 手表带久了不亮怎么办 蜜蜡带久了不亮怎么办 钛钢首饰不亮了怎么办 潘多拉玫瑰金戒指褪色了怎么办 金色手表漆掉了怎么办 玫瑰金表带褪色后怎么办 K金褪色或泛黄怎么办 钛钢玫瑰金变黑怎么办 玫瑰金手镯掉色了怎么办 彩金颜色不亮了怎么办 玫瑰金链子黑了怎么办 18k玫瑰金变黑了怎么办 玫瑰金戒指遇到火变黑怎么办 18k白金发黄了怎么办 18k金掉色后怎么办吗 dw手表金色掉漆怎么办