http://www.cnblogs.com/zengxlf/archive/2009/05/06/1451004.html

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

#foreach($item in $tables)
 #set($strEnd = $item.Length - 1)
 #set($sheetName = $item.Substring(0, $strEnd))
 <option value="$item">$sheetName</option>
#end

$strEnd也可以看做一个字符串来操作
$item.Substring(0,15) 取出从0开始的15个字符
------------------------------------------------------------------------------------------
//$listType才能用ToString()时,不能用$!{listType}不会出错不能被ToString();
//$listType.toString('f2'),四舍五入,保留两小数。toString();可以加很多的参数,查查参数表.
#if($listType.ToString() == "List")
 #foreach($item in $items)
 <li><a href="FindByPosition.page?positionId=$!{item.Id}">$!{item.PositionName}</a></li>
 #end
#elseif($listType.ToString() == "Select")
 <select id="position" name="employee.Position">
 <option value="-1">请选择</option>
 #foreach($item in $items)
 <option value="$!{item.Id}">$!{item.PositionName}</li>
 #end
 </select>
#end

//#foreach()的循环用法。
<select id="sels">
 #foreach($time in [1..$checkorder.TimeCount])
  <option value=$time>$time</option>
 #end
</select>
---------------------------------------------------------------------------------------
2008-1-5:作VTL表达式,Castle工程
VTL表达式不区分大小写,可以调用方法,属性,
//$velocityCount是统计循环的次数,从1弄开始计算
#set($foo="Holle") ${foo}world
##:是单行注释。#**#:多行注释。
<table>
#foreach($info in $array)
 <tr>
 <td>$velocityCount ##统计循环的次数从1开始计</td>
 <td>$!{info.name}</td>
 <td>$!{info.Password}</td>
 <td>$!{info.Age}</td>
 <td>$!{info.getvalue}</td>
 </tr>
#end
</table>
循环Hashtable是的用法
$allProducts是Hashtable的对象
#foreach($var in $allProducts)
 ##var.key:获取键 var.value:获取值
 $!{var.key}->$!{var.value}
#end
//另一种Hashtable的循环用法
vm页面用关键字点键名。
<h3>$!{hash.aa}</h3>
<h3>$!{hash.bb}</h3>
<h3>$!{hash.cc}</h3>
<h3>$!{hash.dd}</h3>
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!="")
 <h1>$!time</h1>
#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 == "")
 <a title="邀请会员激活空间"
href="javascript:sendMessage('$!{log.CardId}')"><img alt="未绑定"
src="../images/noTies.gif" /></a>
 <div id="ajaxmsg"></div>
#else
 <a href="http://$!%7blog.username%7d.i.myking.cn/" target="_blank"><img alt="进入TA的个人王国" src="../images/Ties.gif" /></a>
#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)
 <table class="month">
 <tr>
  #foreach($col in $t.Columns)
   <th>$col.ColumnName.Replace("日","")</th>
  #end
 <tr>
 #foreach($r in $t.Rows)
 <tr>
  #foreach($c in $r.ItemArray)
   <td align="center">
   #if($c==0)--#end
  #if($c>0) $c.ToString() #end</td>
 #end
 </tr>
 #end
 </table>
#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)
<td  class="last">$Balance.toString('f2')</td>
-------------------------------------------------------------------------------------
//用来显示DataTable dt类型数据的方法。
#foreach($col in $dt.Columns)
 <th>$col.ColumnName</th>
#end
<tr>
#foreach($dr in $dt.Rows)
 <tr>
 #foreach($c in $dr.ItemArray)
  <td align="center">
  #if(!$c || $c.ToString()=="" || $c.ToString()=="0")
  --
  #else
  $c.ToString()
  #end</td>
 #end
 </tr>
#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)
  <table class="month">
  <tr>
  #foreach($col in $t.Columns)
   <th>$col.ColumnName.Replace("日","")</th>
  #end
  <tr>
  #foreach($r in $t.Rows)
   <tr>
   #foreach($c in $r.ItemArray)
    <td align="center">
    #if($c==0)--#end
    #if($c>0) $c.ToString() #end</td>
   #end
   </tr>
  #end
  </table>
 #end
---------------------后台的代码
using(DataSet ds=_cardsSituation.ByCardType(CurrentMerchant.UserName,year,month))
{
 PropertyBag.Add("ds",ds);
}

【转】VTL-vm模板的变量用法的更多相关文章

  1. ThinkPHP模板IF标签用法详解

    投稿:shichen2014 字体:[增加 减小] 类型:转载 时间:2014-07-01 我要评论 这篇文章主要介绍了ThinkPHP模板IF标签用法,需要的朋友可以参考下 ThinkPHP的IF标 ...

  2. flask模板的基本用法(定界符、模板语法、渲染模板),模板辅助工具(上下文、全局对象、过滤器、测试器、模板环境对象)

    flask模板 在动态web程序中,视图函数返回的HTML数据往往需要根据相应的变量(比如查询参数)动态生成. 当HTML代码保存到单独的文件中时,我们没法再使用字符串格式化或拼接字符串的当时在HTM ...

  3. Thinkphp入门三—框架模板、变量(47)

    原文:Thinkphp入门三-框架模板.变量(47) [在控制器调用模板] display()   调用当前操作名称的模板 display(‘名字’)  调用指定名字的模板文件 控制器调用模板四种方式 ...

  4. 模板语言变量,js变量,js自执行函数之前嵌套调用

    1.模板语言变量 前端html页面中展示 {{ nodeIp }} 2.js变量引用模板语言变量 把模板语言变量传递给js,js去执行页面操作(变量的转换,只适用于字符串) var IP = &quo ...

  5. Flask08 包含(include)、继承(extends)、宏???、模板中变量的来源、利用bootstrap构建自己的网页结构

    1 包含 直接把另一个文件的内容,复制粘贴过来 {% include "模板路径" %} 注意:模板都是放在 templates 这个文件夹下面的,可以在里面新建文件夹来进行分离: ...

  6. thinkcmf5 模板版变量的加载过程 和 新增网站配置项怎么全局使用

    1.模板全局配置是怎么加载的 在 HomeBaseController.php 的 fech方法 $more     = $this->getThemeFileMore($template); ...

  7. Django 模板语言 变量名称

    Django 模板语言 变量名称 模板语言中已变量形式显示 # view 文件内 def func(request): return render(request,"index.html&q ...

  8. 帝国CMS模板$GLOBALS[navclassid]用法详解

    帝国CMS模板程序扩展变量说明:通过这些变量可实现各种更复杂的显示格式. 一.列表/封面模板变量说明:(栏目页或专题页中使用) (一).当前栏目ID或专题ID:$GLOBALS[navclassid] ...

  9. Rust变量用法与特征

    变量用法与特征 变量绑定 let a = "hello world"  为何不用赋值而用绑定呢(其实你也可以称之为赋值,但是绑定的含义更清晰准确)?这里就涉及 Rust 最核心的原 ...

随机推荐

  1. PAT甲题题解-1037. Magic Coupon (25)-贪心,水

    题目说了那么多,就是给你两个序列,分别选取元素进行一对一相乘,求得到的最大乘积. 将两个序列的正和负数分开,排个序,然后分别将正1和正2前面的相乘,负1和负2前面的相乘,累加和即可. #include ...

  2. Linux内核分析——第六周学习笔记20135308

    第六周 进程的描述和进程的创建 一.进程描述符task_struct数据结构 1.操作系统三大功能 进程管理 内存管理 文件系统 2.进程控制块PCB——task_struct 也叫进程描述符,为了管 ...

  3. Linux内核分析(第三周)

    构造一个简单的linux系统menuOS. 一.简介 1.两把宝剑:中断-上下文的切换(保存现场和恢复现场) 进程-上下文的切换 2.linux-3.18.6 arch/x86目录下的代码是我们重点关 ...

  4. Linux内核分析第四周总结

    用户态,内核态和中断处理过程 库函数将系统调用封装起来 用户态和内核态的差别: 在内核态时,cs和eip的值可以是任意地址,但在用户态时只能访问0x00000000 - 0xbfffffff,0x00 ...

  5. CodeM Qualifying Match Q5

    问题描述: 给定两个整数 l 和 r ,对于所有满足1 ≤ l ≤ x ≤ r ≤ 10^9 的 x ,把 x 的所有约数全部写下来. 对于每个写下来的数,只保留最高位的那个数码.求1-9每个数码出现 ...

  6. Spring+Junit测试用例的使用

    1.[导包]使用Spring测试套件,需要两个jar包:junit-X.X.jar和spring-test-X.X.X.RELEASE.jar,在maven项目下可添加如下依赖: <depend ...

  7. [转帖]Programmer’s guide to the big tech companies 💻

    Programmer’s guide to the big tech companies

  8. delphi xe 的替代者 Lazarus

    Lazarus的设计目标是应用Free Pascal,所以所有凡是Free Pascal能运行的平台,Lazarus都可以运行.最新版本能运行于Linux,Win32和Mac OS.整个界面的外观和操 ...

  9. bzoj1214 [HNOI2004]FTP服务器

    题目挺复杂的. 但有一点好,就是这题没数据,交个空程序就好了. begin end.

  10. BZOJ2435 NOI2011道路修建

    要多简单有多简单.然而不知道为啥在luogu上过不掉. #include<iostream> #include<cstdio> #include<cmath> #i ...