什么是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
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
#end
定义了一个数组,然后遍历输出,其中velocityCount为索引变量
#foreach($key in $table.keySet()) $key -> $table.get($key)
#end
#foreach($code in $!areaCodeList) #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) #elseif($element == 2) #else #end #end #end
七、DateTime数据类型转换成一定的字符串格式 tostring
#if($datetime) $datetime.ToString(""yyyy-MM-dd"")
#end
#if($date) $date.time.ToString(""yyyy-MM-dd hh:mm:ss"")
#end
#if($table) #foreach($model in $table.Rows) $model.time.ToString(""yyyy年MM月dd日"")
#end #end
八、decimal数据类型转换成一定的字符串格式 tostring
需要计算的:如 (number/1000).tostring("f1"); #if($strDecimal) $strDecimal.ToString(""f0"")
#end
#if($objectDecimal) $objectDecimal.Price.ToString(""f0"")
#end
#if($tableDecimal) #foreach($model in $tableDecimal.Rows) $model.Price.ToString(""f0"")
#end #end 九、Trim() 去除空格
#if($!{name} != '') #set($tempName =$!{name}) #if($tempName == ' abc ') 还没有去除首尾空格
#end #set($tempName =$tempName.Trim()) #if($tempName == 'abc') 去除成功 #end $tempName #end 十、分割字符串 #set($str="111#222") #set($arr=$UtilHelper.SpiltString("$str","#"))$arr.length
#foreach($item in $arr)$item
#end