什么是Velocity?
Velocity是一个基于Java的模板引擎。它允许任何人使用简单但功能强大的模板语言来引用Java代码中定义的对象。
当Velocity用于Web开发时,Web设计人员可以与Java程序员并行工作,根据模型 - 视图 - 控制器(MVC)模型开发Web站点,这意味着Web页面设计人员可以专注于创建看起来不错的站点,程序员可以专注于编写顶级代码。Velocity将Java代码与网页分离,使网站在其生命周期内更易于维护,并提供Java Server Pages(JSP)或PHP的可行替代方案。
Velocity的功能远远超出了网络领域; 例如,它可用于从模板生成SQL,PostScript和XML。它既可以用作生成源代码和报告的独立实用程序,也可以用作其他系统的集成组件。例如,Velocity为各种Web框架提供模板服务,使它们能够通过视图引擎根据真正的MVC模型促进Web应用程序的开发。
一、定义变量
1 #set($phone='18800000000') 2 #set($code='0086') 3 #set($mobile=$code+' - '+$phone) 4 $code - $phone <br/> 5 $mobile
#set是负责定义 $开头则是显示变量 =表示赋值
当需要从视图中取得属性时可采用
#set($phoneFixCut=$!result.result.nationalCode)
二、字符串替换Replace
#if($!{name} != '')
#set($tempName = $!{name})
#set($tempName = $tempName.Replace('abc','def'))
$tempName
#end
三、截取部分字段subsubstring
#if($!result.result.nationalCode)
#set($str=$!result.result.nationalCode)
#if($str.indexOf("000")!=-1)
#set($phoneFixCut=$!result.result.nationalCode.substring(3))
#elseif($str.indexOf("00")!=-1)
#set($phoneFixCut=$!result.result.nationalCode.substring(2))
#elseif($str.indexOf("0")!=-1)
#set($phoneFixCut=$!result.result.nationalCode.substring(1))
#else
#set($phoneFixCut=$!result.result.nationalCode)
#end
#else
#set($phoneFixCut=$!result.result.nationalCode)
#end
当然我们也可以这样进行截取
#set($phoneFixCut=$!result.result.nationalCode.substring(0,4))
四、遍历数值,hashTable
#set($list = ["CTU", "SHA", "LAX"])
#foreach ($item in $list)
$velocityCount . $item <br/>
#end
定义了一个数组,然后遍历输出,其中velocityCount为索引变量
#foreach($key in $table.keySet())
$key -> $table.get($key)<br/>
#end
#foreach($code in $!areaCodeList) <option value="$!code">+$!code</option> #end
五、判空
$null.isNull($orderList.orders) || $orderList.orders.size()==0 判断集合是否为空
#if(${value.length()}>0)
#end
#if($(orderDto))
订单对象有值
#else
订单对象为空
#end
#if(!$(orderDto))
订单对象为空
#else
订单对象有值
#end
六、分割字符串
#if($!{result.creType} && $result.creType)
#foreach ($element in $result.creType.split(","))
#if($element == 1)
<script>document.getElementsByName("cretype")[0].checked="checked";</script>
#elseif($element == 2)
<script>document.getElementsByName("cretype")[1].checked="checked";</script>
#else
<script>document.getElementsByName("cretype")[2].checked="checked";</script>
#end
#end
#end
七、DateTime数据类型转换成一定的字符串格式 tostring
#if($datetime)
$datetime.ToString(""yyyy-MM-dd"")<br/>
#end <br/>
#if($date)
$date.time.ToString(""yyyy-MM-dd hh:mm:ss"")<br/>
#end <br/>
#if($table)
#foreach($model in $table.Rows)
$model.time.ToString(""yyyy年MM月dd日"")<br/>
#end
#end
八、decimal数据类型转换成一定的字符串格式 tostring
需要计算的:如 (number/1000).tostring("f1");
#if($strDecimal)
$strDecimal.ToString(""f0"")<br/>
#end <br/>
#if($objectDecimal)
$objectDecimal.Price.ToString(""f0"")<br/>
#end <br/>
#if($tableDecimal)
#foreach($model in $tableDecimal.Rows)
$model.Price.ToString(""f0"")<br/>
#end
#end
九、Trim() 去除空格
#if($!{name} != '')
#set($tempName =$!{name})
#if($tempName == ' abc ')
还没有去除首尾空格<br/>
#end
#set($tempName =$tempName.Trim())
#if($tempName == 'abc')
去除成功
#end
$tempName
#end
十、分割字符串
#set($str="111#222")
#set($arr=$UtilHelper.SpiltString("$str","#"))
<p>$arr.length</p>
#foreach($item in $arr)
<h2>$item</h2>
#end
Velocity模板引擎详解与应用
Velocity是一个基于Java的模板引擎,适用于Web开发和其他文本生成场景。它实现了模型-视图-控制器(MVC)模式,使得Web页面设计与Java代码分离,便于维护。Velocity提供了变量定义、字符串替换、截取、遍历、判空、字符串转换等功能,广泛用于生成SQL、PostScript、XML等,并在多种Web框架中作为视图引擎。
553

被折叠的 条评论
为什么被折叠?



