velocity模板其实就是java不分语法的翻译,用到的属性还是java的方法,get,set,等

1.截取部分字段substring

  1. 原始字符串:$!ag.tagValue,也许很长,前端页面展示时需要截取字符串。
  2. #set($str=$!ag.tagValue)
  3.  
  4. #if($str.length()>30)
  5. #set($str=$str.substring(0,30))
  6. $str ...
  7. #else
  8. $!ag.tagValue
  9. #end

使用substring(begin,end)要注意,结束位置为:end索引-1

2.分割成数组split

  1. #if($!{result.creType} && $result.creType)
  2. #foreach ($element in $result.creType.split(","))
  3. #if($element == 1)
  4. <script>document.getElementsByName("cretype")[0].checked="checked";</script>
  5. #elseif($element == 2)
  6. <script>document.getElementsByName("cretype")[1].checked="checked";</script>
  7. #else
  8. <script>document.getElementsByName("cretype")[2].checked="checked";</script>
  9. #end
  10. #end
  11. #end

3.说到split成数组,就要看数组的几个可以用的方法

velocity 中的数组对应 Java 中的 List 对象。对于 Java 原生 Array 对象, 只能够 #foreach 进行遍历,无法使用 $arr[0] 和 $arr.get(0) 方法。

4.所以学java从不用数组,而用list

--事实上,list很方便,但list比数组效率低很多倍

  • $myarray.isEmpty()list是否为空
  • $myarray.size()获取list元素个数
  • $myarray.get(2)获取list指定下标的元素
  • $myarray.add()增加元素

5.计数用$velocityCount

在foreach中velocityCount表示循环的次数,从1开始,代表第一个循环。

6.空null和空字符串""的判断

在velocity中,非null被认为是真的,所以,判断null可以用

  1. #if($!变量名)
  2. ……
  3. #else
  4. ……
  5. #end

或者既可以判断null也可以判断空字符串

  1. #if("$!varName" != "")
  2. 不为null ""
  3. #else
  4. ……
  5. #end

7.基本语法错误#end不要忘

最开始的时候经常#if就完了报错,后来都是写完if就end,最后写中间。

8.#macro其实也很简单

原来感觉不懂不敢碰,自从写了个velocity分页后就忽然觉得宏不要太好用。事情是这样的,当时地区三级联动需要多处调用,提取出成公共模块,用#parse导入后出现冲突,因为一个页面用两次地区联动代码,id就重复了。于是想把id给变成参数,当我需要这个公用代码的时候,把id当参数传进去,最后render的结果就是html代码的id为我的参数。这样看来,宏就是一个函数。

想要用宏,先写好,然后parse,然后调用。

一个简单的宏函数:

  1. #macro( d )
  2. <tr><td></td></tr>
  3. #end

使用它:如果在本页面,直接#d,如果是单独写了一个模板文件,那么需要先#parse(文件路径),再#d,如同js外部引用。

传参数的宏:

  1. #macro( tablerows $color $somelist )
  2. #foreach( $something in $somelist )
  3. <tr><td bgcolor=$color>$something</td></tr>
  4. #end
  5. #end

一个综合使用,分页

9引用外部文件#include和#parse

我开始经常用#include,后来发现刷新页面没变化,用#parse就好了。字面理解,一个是直接拿过来,一个是解析后。所以,如果是传html代码,可以直接include;若是包含velocity代码的要编译#parse.

velocity的一些用法的更多相关文章

  1. Velocity教程【转】

    原文:http://blog.csdn.net/qq_25237663/article/details/52262532 Velocity是一个基于Java的模板引擎,通过特定的语法,Velocity ...

  2. Velocity教程 (zhuan)

    http://blog.csdn.net/qq_25237663/article/details/52262532 ****************************************** ...

  3. 《Velocity 模板使用指南》中文版[转]

    转自:http://blog.csdn.net/javafound/archive/2007/05/14/1607931.aspx <Velocity 模板使用指南>中文版 源文见 htt ...

  4. Velocity.js初识

    Velocity.js官网:http://julian.com/research/velocity/ 兼容IE8和Android2.3 Velocity.js基本用法 效果图: CSS .box{ w ...

  5. Velocity的学习1

    Velocity 是一个基于Java的的模板引擎,通过特定的语法,速度可以获取在的Java语言中定义的对象,从而实现界面和Java的代码的真正分离,这意味着可以使用Velocity替代JSP的开发模式 ...

  6. web基础----->模板引擎Velocity的使用(二)

    这里面是关于velocity的一些用法,比较基础的使用.愿你生命中有够多的云翳,来造成一个美丽的黄昏. velocity生成javaBean 一.定义一个简单的bean类 public class C ...

  7. Velocity学习

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11790482.html Velocity学习: 1. velocity对大小写敏感 2. ve ...

  8. Pyhton开源框架(加强版)

    info:Djangourl:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 ...

  9. Python开源框架

    info:更多Django信息url:https://www.oschina.net/p/djangodetail: Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC) ...

随机推荐

  1. Kernels

    Let \(E\) be a set and  \(\mathscr{E}\)  a \(\sigma\)-algebra of subsets of  \(E\). Assume that the ...

  2. 解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译)

    解剖SQLSERVER 第十四篇    Vardecimals 存储格式揭秘(译) http://improve.dk/how-are-vardecimals-stored/ 在这篇文章,我将深入研究 ...

  3. 如何安全地关闭MySQL实例

    如何安全地关闭MySQL实例 转载自:http://imysql.com/2014/08/13/mysql-faq-howto-shutdown-mysqld-fulgraceful.shtml 本文 ...

  4. 【ContextMenu】DataContext不自动更新

    参考资料 http://www.orcode.com/article/Presentation_20147076.html      问题现象 通过绑定集合至ContextMenu的ItemsSour ...

  5. Android 高仿微信支付密码输入控件

    像微信支付密码控件,在app中是一个多么司空见惯的功能.最近,项目需要这个功能,于是乎就实现这个功能. 老样子,投篮需要找准角度,变成需要理清思路.对于这个"小而美"的控件,我们思 ...

  6. Centos6下安装Mono和Jexus部署ASP.NET应用程序(纯干货)

    一.服务器 腾讯云VPS,Centos6.6系统 二.安装 1.yum升级 yum –y update 2.安装Mono所需要的库 yum -y install gcc gcc-c++ bison p ...

  7. 5天玩转C#并行和多线程编程 —— 第五天 多线程编程大总结

    5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编 ...

  8. MYSQL-用户操作

    说明:本文主要写了,MYSQL对于用户的一些操作,有:查看用户,创建用户,权限的赋予,收回,用户的密码修改和删除. MySql的用户管理是通过 User表来实现的,添加新用户常用的方法有两个,一是在U ...

  9. Redis主从复制问题和扩容问题的解决思路

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/106.html?1455867541 一.解决主从复制问题 当使用Redi ...

  10. [Java面试二]Java基础知识精华部分.

    一:java概述(快速浏览): 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名 ...