VTL-vm模板的变量用法

VTL-vm模板的变量用法

加载foot模块页
#parse("foot.vm")

#foreach($item in $tables)
 #set($strEnd = $item.Length - 1)
 #set($sheetName = $item.Substring(0, $strEnd))
 
#end

$strEnd也可以看做一个字符串来操作
$item.Substring(0,15) 取出从0开始的15个字符
------------------------------------------------------------------------------------------
//$listType才能用ToString()时,不能用$!{listType}不会出错不能被ToString();
//$listType.toString('f2'),四舍五入,保留两小数。toString();可以加很多的参数,查查参数表.
#if($listType.ToString() == "List")
 #foreach($item in $items)
 

  • $!{item.PositionName}

  •  #end
    #elseif($listType.ToString() == "Select")
     
    #end

    //#foreach()的循环用法。

    ---------------------------------------------------------------------------------------
    2008-1-5:作VTL表达式,Castle工程
    VTL表达式不区分大小写,可以调用方法,属性,
    //$velocityCount是统计循环的次数,从1弄开始计算
    #set($foo="Holle") ${foo}world
    ##:是单行注释。#**#:多行注释。


    #foreach($info in $array)
     
     
     
     
     
     
     
    #end
    $velocityCount ##统计循环的次数从1开始计$!{info.name}$!{info.Password}$!{info.Age}$!{info.getvalue}

    循环Hashtable是的用法
    $allProducts是Hashtable的对象
    #foreach($var in $allProducts)
     ##var.key:获取键 var.value:获取值
     $!{var.key}->$!{var.value}
    #end
    //另一种Hashtable的循环用法
    vm页面用关键字点键名。

    $!{hash.aa}


    $!{hash.bb}


    $!{hash.cc}


    $!{hash.dd}


    Controll层里
    public void Index()
    {
     Hashtable hash = new Hashtable();
     hash.Add("aa","one");
     hash.Add("bb",DateTime.MaxValue);
     hash.Add("cc",DateTime.MinValue);
     hash.Add("dd",DateTime.Now.ToString());
    }
    -------------------------------------------------------------------------------------
    ##是可以用来输出字面的意思是原样输出(注释用的)
    #literal()
    #foreach($woogie in $boogie)
     nothing will happen to $woogie
    #end
    #end
    -----------------------------------------------------------------------------------------
    //$type里面的一些方法,比较有用。
    #if($type.ToLower() != "noservice")  ToLower():是小写字符串的方法。
    ToString():
    #set($index=$item.Content.IndexOf(","))
    $!{item.ReceiveTime.ToString("yyyy-mm-dd HH:mm")}
    $!{consumeLog.OperateDate.ToString("yyyy-MM-dd HH:mm")}
    $!{consume.ConsumeDate.ToString("d")}
    $!{consume.ConsumeDate.ToString("t")}
    $!{sign.FirstStartTime.ToShortDateString()}与$!{sign.FirstStartTime.ToString("yyyy-MM-dd")}效果一样的。
    #set($index = $customer.IndexOf(","))取得逗号位置
    $r.Phone.Substring(0,7)****:取出电话号码为:1371093****
    -----------------------------------------------------------------------------------------
    this.ProprtBag.Add("time",DateTime.Now);
    //用来判断是否为空
    #if($time!="")
     

    $!time


    #end
    //当有数组是判断是否是数
    #if($items.Count>0)
     #foreach($item in $items)
      $!{item}
     #end
    #end
    -----------------------------------------------------------------------------------------
    #elseif:多重条件判断
    #if(!$order)
     100001
    #elseif($order.CustomerId && $order.CustomerId != "" && $order.CustomerId != $userName)
     100002
    #elseif($order && ($order.CustomerId == "" || !$order.CustomerId || $order.CustomerId == $userName))
     100003
    #end
    -----------------------------------------------------------------------------------------------------
    :来注释页面上用的,不能有套用会无法注释的如: -->
    ---------------------------------------------------------------------------------------------------------
    //会依次显示,当翻页面时也会接着上一页继续显示编号。其中14为每一页显示的条数,根据需要而调整
    #if(!$page || $page <= 0)
     #set($page = 1)
    #end
    #set($rowIndex = ($page - 1) * 14 )
    #foreach($log in $logDt.Rows)
     $rowIndex
    #end
    ---------------------------------------------------------------------------------------------------------
    $!{consumeLog.OperateDate.ToString("yyyy-MM-dd HH:mm")}
    ---------------------------------------------------------------------------------------------------------
    #if(!$log.UserName || $log.UserName == "")
     未绑定
     

    #else
     进入TA的个人王国
    #end
    用来判断为空值时的处理
    -----------------------------------------------------------------------------------------------------------
    DataTable或者DataSet的页面数据加载。
    ---------------------*.vm----------------------------------------------------------------------------------
    页面上写的是
    #foreach($log in $table.Rows)
     $!{log.Id}>>>$!{log.User}>>>$!{log.Phone}
    #end
    ----------------controller----------------------------------
    public void Index()
    {
     DataTable table = new DataTable();
     table.Columns.Add("Id",typeof(int));
     table.Columns.Add("User",typeof(string));
     table.Columns.Add("Phone",typeof(string));
     for(int i=0;i<3;i++)
     {
      DataRow row = table.NewRow();
      row["Id"]=i;
      row["User"]="cheng";
      row["Phone"]="2222222";
      table.Rows.Add(row);
     }
     this.ProperBag.Add("table",table);
    }
    ----------------------------DateSet数据绑定页面------------------------------------
    #foreach($t in $ds.Tables)
     
     
      #foreach($col in $t.Columns)
       
      #end
     
     #foreach($r in $t.Rows)
     
      #foreach($c in $r.ItemArray)
       
     #end
     
     #end
     
    $col.ColumnName.Replace("日","")

       #if($c==0)--#end
      #if($c>0) $c.ToString() #end

    #end
    ---------------------后台的代码----------------------------------------------------
    using(DataSet ds=_cardsSituation.ByCardType(CurrentMerchant.UserName,year,month))
    {
     PropertyBag.Add("ds",ds);
    }
    -------------------------------------------------------------------------------------
    //时间日期的判断
    #if($!{Member.Isusedate.ToShortDateString()} =="0001-1-1")
     ----
    #else
     $!{Member.Isusedate.ToShortDateString()}
    #end
    -------------------------------------------------------------------------------------
    //用于计算剩余的值
    #set($Balance = $!item.Money - $!item.FactMoney)
    $Balance.toString('f2')
    -------------------------------------------------------------------------------------
    //用来显示DataTable dt类型数据的方法。
    #foreach($col in $dt.Columns)
     $col.ColumnName
    #end

    #foreach($dr in $dt.Rows)
     
     #foreach($c in $dr.ItemArray)
      
      #if(!$c || $c.ToString()=="" || $c.ToString()=="0")
      --
      #else
      $c.ToString()
      #end
     #end
     
    #end

    --------------------------------------------------------------------------------------

    ---------------------*.vm------------------------------------
    页面上写的是
    #foreach($log in $table.Rows)
     $!{log.Id}>>>$!{log.User}>>>$!{log.Phone}
    #end
    ----------------controller----------------------------------
    public void Index()
    {
     DataTable table = new DataTable();
     table.Columns.Add("Id",typeof(int));
     table.Columns.Add("User",typeof(string));
     table.Columns.Add("Phone",typeof(string));
     for(int i=0;i<3;i++)
     {
      DataRow row = table.NewRow();
      row["Id"]=i;
      row["User"]="cheng";
      row["Phone"]="2222222";
      table.Rows.Add(row);
     }
     this.ProperBag.Add("table",table);
    }


    ----------------------------DateSet数据绑定页面-----------------------------------------------------
    #foreach($t in $ds.Tables)
     

     


      
      #foreach($col in $t.Columns)
       
      #end
      
      #foreach($r in $t.Rows)
       
       #foreach($c in $r.ItemArray)
        
       #end
       
      #end
      
    $col.ColumnName.Replace("日","")

        #if($c==0)--#end
        #if($c>0) $c.ToString() #end

     #end
    ---------------------后台的代码
    using(DataSet ds=_cardsSituation.ByCardType(CurrentMerchant.UserName,year,month))
    {
     PropertyBag.Add("ds",ds);

    你可能感兴趣的:(项目经验,工具类)