Velocity语法介绍(模板引擎)

什么是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

猜你喜欢

转载自blog.csdn.net/qq_32465815/article/details/81143403