快速业务通道

Unmi的Struts2学习笔记(十一) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15

Unmi的Struts2学习笔记(十一)

时间:2011-09-04 Unmi.cc 隔叶黄莺

你尽可以做个良民,为群体效率而本份的遵循个人秩序,然而事与愿违,非但 不能因此提升群体的效率,而你势必失去诸多的机会,不会有人褒奖你,更得不 到同情,只得自觉的天真。

1. 模板目录->主题目录->主题(模板文件) 这是模板/主题的目录组织方 式。以实际为例,打开 struts2-core-2.x.x.jar 可以看到里面有一个 template ,在 template 下有5个目录 ajax、css_xhtml、simple、xhtml 和 archive,其 中前四个分别是 ajax、css_xhtml、simple、xhtml 主题的目录,每个主题目录 中有各自的模板文件,主要是 ftl 文件,还有 css和 js 文件。最后一个 archive 是归档的主题目录,其下又有 ajax、simple、xhtml、模板文件是 .vm 文件。由此可知 Struts2 大力推荐的模板语言是 FreeMarker,而不是 Velocity ,以后要好好看看 FreeMarker,只知道 FreeMarkder 更 XML 化。

2. 上面看到模板目录名是 template,是 struts2-core-2.x.x.jar 中,其实 目录名是由 struts.ui.templateDir 常量来指定的,只是默认值是 template。 意味着 Struts 2 从 Web 应用的 template 目录或CLASSPATH 的 template 目录 (包) 中依次加载特定的模板文件。

3. 比如我们使用一个 select 标签,且指定主题为 xhtml,则加载模板文件 的顺序为 (1) Web 应用/template/xhmlt/select.flt  (2) CLASSPATH/template/xhtml/select.ftl。Struts2 默认是用的 FreeMarkder 模 板技术,可设置常量 struts.ui.templateSuffix 来改变默认的模板技术,可选 值有 ftl、vm、jsp。但是对于 vm 和 jsp 要自己提供完整的实现,Struts2 可 没帮你做这些。

4. 有时候我们想要自定义主题,如你希望输入框前的标签显示红颜色,你不 想要校验错误提示在输入框正上方而是右边。当然你可以修改 struts2-core- 2.x.x.jar 中 template 下某个主题的模板文件,或拷一份到 Web 应用目录的 template 目录修改要定制的模板,这样做总有些不爽。Struts2 还支持两种更灵 活的主题定制方式。包装和继承现有主题,可以同时使用。

最简单的主题定制方式是利用主题模板的加载优先级,把自定义的模板文件放 在优先级高的目录,比如放一个 text.ftl 在 WEB- INF/classes/template/xhtml/ 目录下,它将覆盖掉 struts2-core-2.x.x.jar 里的 template/xhtml/text.ftl 的定义。

5. 先看一个包装的例子,在 xhtml 下的 combobox.ftl 的内容如下:

<#include "/${parameters.templateDir}/

${parameters.theme}/controlheader.ftl" /><#include "/

${parameters.templateDir}/simple/combobox.ftl" /><#include "/${parameters.templateDir}/xhtml/controlfooter.ftl" /><#nt/>

它就是对 simple/combobox.ftl 的基础上包装上一个 controlheader.ftl 和一 个 controlfooter.ftl,包装的局限性是你仍然是要为每一个 UI 组件提供单独 模板文件,即全套的。

和设计模式中的包装(装饰)模式如出一辙,如 BufferedInputStream 包装了 InputStream,但在 BufferedInputStream 提供了全套的和 InputStream 一样 的操作方法。

Unmi的Struts2学习笔记(十一)(2)

时间:2011-09-04 Unmi.cc 隔叶黄莺

6. 再说继承来自定义主题,如果简单改变个别 UI 的风格,继承就是最为高 效的了。此继承与 Java 的继承(即extends) 也是一马事。要改变或要新加的用 自己定义的,其他的延用父主题的。举个例子,自定义一个名为 custom 的主题 继承自 xhtml,只改变 select 标签的风格,你要做的就是编辑自己的一个 select.ftl 放在 WEB-INF/classes/template/custom 下,并在

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号