Velocity中的ComparisonDateTool.MathTool.NumberTool.SortTool.EscapeTool工具 可以从Apache官方网站自带的例子中查找,位置\velocity-tools-1.4-src\examples\showcase. Apache官方网站自带的例子有下面一些: AlternatorTool BrowserSniffer ContextTool CookieTool DateTool EscapeTool ImportTool LinkTo…
一.总结 在Webx的Velocity中获取url中参数:$rundata.getRequest().getParameter('userId') 在Webx项目中,防止CSRF攻击(Cross-site request forgery,跨站请求伪造),在form表单提交中要加入$!csrfToken.ajaxUniqueToken 在MyBatis的mapper层,使用标签association实现对象的关联,一个bean配多个association标签. 二.Bug描述:Velocity从U…
请先看下面一段代码: #foreach($id in [1..50]) #set($user = $User.Get($id)) $id : ${user.name} #end 上面这段代码中,假设只存在一个id为1的用户,但是却会显示50个id都是1的用户及其名称,因为在 Velocity  中,如果某个赋值语句返回的结果是null,则不改变所赋值的对象值,也就是说 $user 变量会一直保持上一个有效值. 官方文档中给出解决的办法是将上面的代码改为: #foreach($id in [1..…
版权声明:本文为博主原创文章,转载请注明出处,欢迎使劲喷 一.为什么要在velocity中使用枚举 1.目前接触到的系统,枚举通常用来在程序中定义数据字典. 举个支付的例子,比如一个字段用来标识一条记录的状态,如下: 010000 微信支付 010001 支付宝支付 010002 银联支付 我们在程序中需要用这些定义的字典去做相应的处理,比如微信支付时,我们调用微信支付的逻辑,等等. 2.当涉及与前端的交互时,我们可能需要从前端把三种支付方式对应的code值传到后台.此时,如果在页面上直接写01…
Velocity中加载vm文件的三种方式   velocitypropertiespath Velocity中加载vm文件的三种方式:    方式一:加载classpath目录下的vm文件 Properties p = new Properties(); p.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");…
Velocity中加载vm文件的三种方式: a.  加载classpath目录下的vm文件 /** * 初始化Velocity引擎 * --VelocityEngine是单例模式,线程安全 * @throws Exception */ public static void initVelocity() throws Exception { Properties p = new Properties(); /** * velocity.properties配置定义 * file.resource.…
Velocity中判断表达式是不是为空 $if ($null.isNull($mycoll) || $mycoll.size()==0) ${}与$!{}区别 例子: ${str}:如果str没有值,则页面显示str本身: $!{str}:如果str没有值,则页面显示“”(“”在页面上的显示效果就是啥也看不到): #set用法 #set是用来定义变量的 例子: #set( $name = "pocher!" )…
在Java国际化(i18n)中, vm页面显示内容需要使用 #springMessage("title") 实际运行时发现页面输出$springMacroRequestContext.getMessage($code).看了一下源代码,#springMessage是一个宏,在spring.vm中定义为 #macro( springMessage $code )$springMacroRequestContext.getMessage($code)#end 原因是因为未找到$spring…
引用可以让模板设计者生成动态内容,而指令允许设计者真正的负责页面的展现和内容. 指令是以#开头,后面紧跟一个关键字,比如if,else,foreach等.而这个关键字,是可以被放在{}中间的.这是规范的写法,但是可能不好看. #set #set指令用于向一个变量或者属性赋值.其格式为 #set($foo="bar")或者#set($foo.bar=$test) . LHS必须是一个变量或者属性,RHS必须是以下7种类型之一:变量.属性.字符串字面值.数字字面值.方法.ArrayList…
velocity有多中种方式供我们去加载我们自定义的模板文件,下面详细的介绍使用的方法. 1.1.1. 加载classpath目录下的模板文件 使用classpath方式加载,是我们经常用到的一种方式,因为我们的项目可能是web项目,使用这种方式加载我们类加载器跟路径中的模板文件,具体的使用如下所示: 程序的结构如下图所示: shareniu.vm中我们定义了两个变量name,author模板的内容如下所示: $name, $author 程序如下所示: Properties p = new P…