- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Velocity脚本简明教程
Velocity脚本简明教程
文 / YaSin ??来源于:博客园
很多人下载了EasyJWeb的开源应用示例,但是对动态页面模板文件中的标签使用不是很熟悉,这里简单介绍一下。EasyJWeb特定把视图限定为Velocity,因为我们觉得在Velocity在表现上从可维护性、简洁性乃灵活性上,比JSP及其它视力技术表现强得多。虽然我们可以非常简单把EasyJWeb扩展成支持多种视力技术,但当前我们不打算这样做!
使用EasyJWeb的目的,是在于把页面-程序完成分开,就也就是一个项目中,程序员使用专业Java开发工具(如Eclipse、JBuilder等)来编写、调试、测试程序,页面制作人员使用专业的网页制作工具(如Macromedia Dreamweaver)来设计制作网页,而两者之间的协调通过一个规范的接口协议来解决。需要在页面里面加如一些标签,来生成动态内容,这一工作可以交由网页制作人员来完成。因为使用Velocity作为视图,由于他的语法、功能及使用方法都比较简单,因此一般情况下,一天以内就能让页面制作人员熟练掌握其用法。
Velocity是一个基于java的模板引擎(template engine),它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。作为一个比较完善的模板引擎,Velocity的功能是比较强大的,但强大的同时也增加了应用复杂性。??一、基本语法?1、#用来标识Velocity的脚本语句,包括#set、#if 、#else、#end、#foreach、#end、#include、#parse、#macro等;??? 如:??? #if($info.imgs)??? img src=$info.imgs border=0??? #else??? img src=noPhoto.jpg??? #end
?
2、$用来标识一个对象(或理解为变量);如:$i、$msg、$TagUtil.options(...)等。
?
3、{}用来明确标识Velocity变量;??? 比如在页面中,页面中有一个$someonename,此时,Velocity将把someonename作为变量名,若我们程序是想在someone这个变量的后面紧接着显示name字符,则上面的标签应该改成${someone}name。
?
4、!用来强制把不存在的变量显示为空白。??? 如当页面中包含$msg,如果msg对象有值,将显示msg的值,如果不存在msg对象同,则在页面中将显示$msg字符。这是我们不希望的,为了把不存在的变量或变量值为null的对象显示为空白,则只需要在变量名前加一个“!”号即可。??? 如:$!msg??二、在EasyJWeb中的最佳实践?? 理论上你可以在EasyjWeb模板使用所有Velocity的脚本及功能,但我们不推荐你在界面模板中使用过多过复杂的脚本表达方式,在万不得已的情况下,不要在界面模板中加入任何复杂的逻辑,更不要在界面模板中加入变量声明、逻辑运算符等等。 在EasyJWeb中,我们提供了五条基本的模板脚本语句,基本上就能满足所有应用模板的要求。这四条模板语句很简单,可以直接由界面设计人员来添加。在当前很多EasyJWeb的应用实践中,我们看到,所有界面模板中归纳起来只有下面四种简单模板脚本语句即可实现:
??? 1、$!obj 直接返回对象结果。??? 如:在html标签中显示java对象msg的值。p$!msg/p ?在html标签中显示经过HtmlUtil对象处理过后的msg对象的值 p$!HtmlUtil.doSomething($!msg)/p
??? 2、#if($!obj) #else #end 判断语句 如:在EasyJWeb各种开源应用中,我们经常看到的用于弹出提示信息msg的例子。 #if($msg) script alert($!msg); /script #end??? 上面的脚本表示当对象msg对象存在时,输出script等后面的内容。
3、#foreach( $info in $list) $info.someList #end 循环读取集合list中的对象,并作相应的处理。 如:EasyJF开源论坛系统中论(0.3)坛首页显示热门主题的html界面模板脚本: #foreach( $info in $hotList1) a href=/bbsdoc.ejf?easyJWebCommand=showcid=$!info.cid target=_blank$!info.title/abr #end
原创力文档


文档评论(0)