Velocity的基本用法

Velocity概述

 

Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当Velocity 应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocityjava代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也 为我们在JSPPHP之外又提供了一种可选的方案。
Velocity的能力远不止web站点开发这个领域,例如,它可以从模板 (template)产生SQLPostScriptXML,它也可以被当作一个独立工具来产生源代码和报告,或者作为其他系统的集成组件使用。 Velocity也可以为Turbine web开发架构提供模板服务(template service)。Velocity+Turbine提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。

一、基本语法

1"#"用来标识Velocity的脚本语句,包括#set#if #else#end#foreach#end#include#parse#macro等;
:
#if($info.imgs)

#else

#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的脚本及功能,但我们不推荐你在界面模板中使用过多过复杂的脚本表达方式,在万不得已的情况下,不要在界面模板中加入任何复杂的逻辑,更不要在界面模板中加入变量声明、逻辑运算符等等。
  1$!obj  直接返回对象结果。
如:在html标签中显示java对象msg的值。

$!msg


  在html标签中显示经过HtmlUtil对象处理过后的msg对象的值  

$!HtmlUtil.doSomething($!msg)



2#if($!obj) #else #end 判断语句
  如:在EasyJWeb各种开源应用中,我们经常看到的用于弹出提示信息msg的例子。
   #if($msg)
   
   #end
上面的脚本表示当对象msg对象存在时,输出

你可能感兴趣的:(velocity,脚本,模板引擎,underscore,postscript,email)