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. dokuwiki编辑器修改-color插件-添加按钮

    需求 dokuwiki的编辑工具栏是以 MediaWiki 的为基础发展来的. 在它的编辑器color插件的颜色按钮中,我想添加新的按钮功能.如红色字体黄色背景的修饰,类似于涂中文字强调的意思. 步骤 ...

  2. JS高级程序设计学习笔记1

    javascript产生的原因: 在拨号上网时代,表单数据必须发送到服务器端才能验证输入值得有效性,JavaScript的研发就是为了解决这个问题,以便在客户端就验证输入值的有效性. ECMAScri ...

  3. C# 词频统计 东北师范大学 软件项目管理 第一次作业

    一.作为杨老师的学生第一次听杨老师讲课,印象最深的就是:工程中所有步骤之间是乘法,如果任何一步为0,工程就做不出来了.以前所有老师讲到的都是不要太在乎结果,努力的过程很重要,但是这在软件工程中不合适了 ...

  4. 第二个Sprint冲刺第二天(燃尽图)

  5. AIX上安装配置DB2

    在2台P550数据库主机上安装DB2 V8.2,两台数据库主机间进行数据库HA配置,实现数据库双机互备. 本文档编写以磁盘大小360G,数据库名CRAMS_JS为例. 设备准备 请系统管理员协助划分D ...

  6. 微信小程序input组件抖动及textarea组件光标错位解决方案

    问题一: 使用微信小程序input组件时,在移动端唤起focus或blur事件时,因光标占位导致内容出现叠影及抖动现象. 解决方案: 用<textarea>组件代替了<input/& ...

  7. beta 圆桌 6

    031602111 傅海涛 1.今天进展 接口微调修正 2.存在问题 文档转化太久 3.明天安排 完成全部接口的交互 4.心得体会 文档转化需要好好优化 031602115 黄家雄 1.界面优化 2. ...

  8. 常用的cpl 命令 运行直接打开控制台的简单方法

    转载百度百科   工作中处理 windows机器 有时候 打开 网路修改ip地址特别繁琐,所以找了下 快速打开一些简单的控制台 能提高工作效率.   (Control Panel extension) ...

  9. centos7 登陆报错 grep:write error

    出现这个原因是因为磁盘空间满了 通过df -h查看存储空间 发现磁盘空间满了,可以用 find / -type f -size +1000M 查找大于1000M的文件删除 然后找到用rm -rf 命令 ...

  10. Python day7之mysql

    写在前面: 由于毕业论文撰写和答辩耽搁了几个月,但是在这几个月没有放弃学习Python,就是没有时间写博客.进行我们主要对数据库mysql的操作指令集的学习. 一.mysql术语 Mysql是最流行的 ...