Velocity(3)——#set指令】的更多相关文章

#Include和#Parse都是用于将本地文件引入当前文件的指令,而且被引入的文件必须位于TEMPLATE_ROOT.这两者之间有一些区别. #Include 被#Include引入的文件,其内容不会被Velocity引擎解析,所以这些文件应该是静态模板,即不含有VTL的模板.使用#Include()指令时,参数是被双引号括起来的文件名或者是表示文件名的变量.如果有多个文件,以逗号隔开即可.比如#Include("a.gif", "b.html", $file).…
下面是#If指令的一个简单而完整的示例: #if ($foo < 10) Go North #elseif ($foo == 10) Go East #else Go West#end 不能漏掉 #if指令用于判断某个条件是否为true.以上面的代码为例,当$foo < 10为true时,将会显示"Go North". 有时会看到这样一种写法:#if($foo) ... #end.这里充当判断条件的是一个变量$foo,它在两种情况下是true:一是$foo作为布尔值(Boo…
引用可以让模板设计者生成动态内容,而指令允许设计者真正的负责页面的展现和内容. 指令是以#开头,后面紧跟一个关键字,比如if,else,foreach等.而这个关键字,是可以被放在{}中间的.这是规范的写法,但是可能不好看. #set #set指令用于向一个变量或者属性赋值.其格式为 #set($foo="bar")或者#set($foo.bar=$test) . LHS必须是一个变量或者属性,RHS必须是以下7种类型之一:变量.属性.字符串字面值.数字字面值.方法.ArrayList…
引用可以让模板设计者生成动态内容,而指令允许设计者真正的负责页面的展现和内容. 指令是以#开头,后面紧跟一个关键字,比如if,else,foreach等.而这个关键字,是可以被放在{}中间的.这是规范的写法,但是可能不好看. #set #set指令用于向一个变量或者属性赋值.其格式为 #set($foo="bar")或者#set($foo.bar=$test) . LHS必须是一个变量或者属性,RHS必须是以下7种类型之一:变量.属性.字符串字面值.数字字面值.方法.ArrayList…
#Include和#Parse都是用于将本地文件引入当前文件的指令,而且被引入的文件必须位于TEMPLATE_ROOT.这两者之间有一些区别. #Include 被#Include引入的文件,其内容不会被Velocity引擎解析,所以这些文件应该是静态模板,即不含有VTL的模板.使用#Include()指令时,参数是被双引号括起来的文件名或者是表示文件名的变量.如果有多个文件,以逗号隔开即可.比如#Include("a.gif", "b.html", $file).…
引用可以让模板设计者生成动态内容,而指令允许设计者真正的负责页面的展现和内容. 指令是以#开头,后面紧跟一个关键字,比如if,else,foreach等.而这个关键字,是可以被放在{}中间的.这是规范的写法,但是可能不好看. #set #set指令用于向一个变量或者属性赋值.其格式为 #set($foo="bar")或者#set($foo.bar=$test) . LHS必须是一个变量或者属性,RHS必须是以下7种类型之一:变量.属性.字符串字面值.数字字面值.方法.ArrayList…
首先是#foreach的简单示例: #foreach( $elem in $allElems) $elem</br> #end 上面这个例子中,$allElems可以是一个Vector,一个HashTable,一个数组. 在Velocity中,有一个变量$velocityCount用作循环计数,初始值是1.这个变量的名字和初始值是在velocity.properties文件里配置的. 下面是更多的几个例子: #set($nums=[-2 .. 2]) #foreach($i in $nums)…
1 #macro(formatIncreaseData $increase) 2 #if(${product.onlineStatusFlag} =='0') 3 -- 4 #elseif(!$increase || $increase=="") 5 -- 6 #else 7 #if($increase >= 0) 8 #set($color = "increase-number") 9 #elseif($increase < 0) 10 #set($c…
在MVC开发模式下,View离不开模板引擎,在Java语言中模板引擎使用得最多是JSP.Velocity和FreeMarker,在MVC编程开发模式中,必不可少的一个部分是V的部分.V负责前端的页面展示,也就是负责生产最终的HTML,V部分通常会对应一个编码引擎,当前众多的MVC框架都已经可以将V部分独立开来,可以与众多的模板引擎集成. Velocity总体架构 从代码结构上看,Velocity主要分为app.context.runtime和一些辅助util几个部分. APP模块 其中app主要…
http://ifeve.com/apache-velocity-dev/ <Apache Velocity用户指南>官方文档 原文链接   译文连接 译者:小村长  校对:方腾飞 Quick Start 本项目是 Apache Velocity官方文档的中文翻译版,Velocity类似与JSP,是一种基于Java的模板引擎.它可以在web页面中引用Java代码中定义的数据和对象,而Velocity的作用就是把Web视图和java代码进行组装在一起.本次翻译主要针对对Velocity感兴趣和工…
jetbrick-template 是一个新一代 Java 模板引擎,具有高性能和高扩展性. 适合于动态 HTML 页面输出或者代码生成,可替代 JSP 页面或者 Velocity 等模板. 指令和 Velocity 相似,表达式和 Java 保持一致,易学易用. 支持类似与 Velocity 的多种指令 支持静态编译 支持编译缓存 支持热加载 支持类型推导 支持泛型 支持可变参数方法调用 支持方法重载 支持类似于 Groovy 的方法扩展 支持函数扩展 支持自定义标签 #tag 支持宏定义 #…
一.背景现象 为了支持灵活的.可自定义的脱敏规则,工程拟采用velocity实现该目的,为此,自定义了: mask.substr两个指令,其中 mask实现 public class MaskDirective extends Directive { @Override public String getName() { return "mask"; } @Override public int getType() { return LINE; } @Override public b…
#set指令 #set指令用于向一个变量或者对象赋值. 格式: #set($var = value) LHS是一个变量,不要使用特殊字符例如英文句号等,不能用大括号括起来.测试发现#set($user.name = 'zhangsan'),#set(${age} = 18)均赋值失败. RHS可以是变量.字符串字面值.数字字面值.方法.ArrayList.Map.表达式. 测试案例 User对象类 public class User { private String name; private…
引用的转义使用"\",指令的转义也是使用"\".但是,指令的转义要比引用的转义复杂很多.例如: #if($foo) Go! #end $foo为true,输出Go!:否则不输出任何内容. 使用转义: \#if( $foo ) Go! \#end 此时,"\"和"#"结合,从而破坏了原本的#if(),而$foo作为判断条件,也不会被解析.所以上面这段代码,无论$foo是true还是false,结果都是 #if( $foo ) G…
做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上就完成了所有的业务逻辑代码,能够实用平台的API,这是jsp的一个优点,所谓物极必反,这一点在某些方面也成了它的一个缺点,内容和表示的界限变得很模糊,使得mvc分层不够彻底. Velocity的写法比较接近java的语法,语法非常简单,对于java开发人员来说,从一窍不通到上手使用velocity几…
Velocity介绍 Velocity是一个基于java的template engine.它允许Web designer引用Java Code中定义的方法.Web designer可以和Java工程师根据MVC模型并发编程.也就是说,Velocity使得Java开发和网页开发分离. Velocity还可以根据template可以生成web pages, SQL, PostScript和其他输出,或者和其他系统的组件集成. Velocity Template Language(VTL) VTL在w…
1.变量 (1)变量的定义: #set($name = "hello")      说明:velocity中变量是弱类型的. 当使用#set 指令时,括在双引号中的字面字符串将解析和重新解释,如下所示: #set($directoryRoot = "www" ) #set($templateName = "index.vm" ) #set($template = "$directoryRoot/$templateName" )…
Velocity语言的介绍 2016-09-06 15:39:25 语言介绍 Velocity是一种Java模版引擎技术,是一个基于Java的模板引擎(template engine).她允许任何人简简单单的使用模板语言类引用由Java代码定义的对象. 当Velocity应用于web开发时,界面设计人员可以和Java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序员关注业务逻辑编码.Velocity将Java代码从web页面中分…
使用velocity后,原来的很多标签无法使用了,必须借助velocity tools来完成,目前velocity tools最新版本是2.0,下面是velocity tools的一些注意事项: 1. 与Spring MVC 3.x/4.x的集成问题 Spring 3.x/4.x只支持1.3.x的velocity tools,要使用2.0必须自己扩展VelocityToolboxView类 package org.springframework.web.servlet.view.velocity…
velocity与freemaker.jstl并称为java web开发三大标签技术,而且velocity在codeplex上还有.net的移植版本NVelocity,(注:castle团队在github上也维护了一个版本)对于使用异构技术的团队(即要搞.NET又要搞JAVA),总是希望找一种通用的技术,兼容所有技术平台,以便降低学习成本,无疑velocity是一种值得考虑的选择. 一.与strtus2的集成 <dependency> <groupId>org.apache.vel…
原文:http://blog.csdn.net/qq_25237663/article/details/52262532 Velocity是一个基于Java的模板引擎,通过特定的语法,Velocity可以获取在java语言中定义的对象,从而实现界面和java代码的真正分离,这意味着可以使用velocity替代jsp的开发模式了(实际上笔者所在的公司已经这么做了).这使得前端开发人员可以和 Java 程序开发人员同步开发一个遵循 MVC 架构的 web 站点,在实际应用中,velocity还可以应…
1.后台传递List<bean> ,前台循环获取 List<Lead> leads = leadService.getAllLeadLists(); mv.addObject("lists", leads); #foreach ($leads in $lists) <li><input type="checkbox" name="leadListId" value="$leads.id"…
Velocity 基本语法 Velocity 是一个基于 Java 的模板引擎框架,提供的模板语言可以使用在 Java 中定义的对象和变量上.Velocity 是 Apache 基金会的项目,开发的目标是分离 MVC 模式中的持久化层和业务层.但是在实际应用过程中,Velocity 不仅仅被用在了 MVC 的架构中,还可以被用在以下一些场景中. Web 应用:开发者在不使用 JSP 的情况下,可以用 Velocity 让 HTML 具有动态内容的特性. 源代码生成:Velocity 可以被用来生…
Velocity语法 Velocity的使用要用到下面几个包,可以从官网下载,commons-collections.jar,velocity-1.4.jar,velocity-dept.jar; 1.     变量 (1)变量的定义: #set($name = "hello")      说明:velocity中变量是弱类型的. 当使用#set 指令时,括在双引号中的字面字符串将解析和重新解释,如下所示: #set($directoryRoot = "www" )…
Velocity 模板引擎介绍 Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象.当Velocity 应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码. 引入Velocity的发布包 从http://velocity.apach…
定义宏和使用宏 #macro指令用于定义一个VTL模板的重复代码块——宏.下面是一个简单的定义宏的例子: #macro( d ) <tr><td></td><tr> #end 这段代码定义了一个宏,名字为d,没有参数.下面是使用这个宏的代码: #d() Velocity在遇到#d()的时候,会用"<tr><td></td></tr>"替代上面的#d()这一行. 宏的参数: 宏也可以带参数,而…
输出指令 ${}过滤输出 输出表达式的计算结果,并进行过滤,比如:过滤变量中的HTML标签. 格式: ${expression} 示例: ${user.name} 注:HTTL缺省开启了EscapeXmlFilter,以防止HTML注入攻击,参见:安全示例.如果你需要更强的过滤,请自行实现Filter,并配置到value.filters.此处为运行时热点,请注意性能. 如果输出变量的类型为Template,则缺省不过滤,比如:${include("foo.httl")} $!{}不过滤…
一.前言 Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力.而且Velocity被移植到不同的平台上,如.Net的NVelocity和js的Velocity.js,虽然各平台在使用和实现上略有差别,但大部分语法和引擎核心的实现是一致的,因此学习成本降低不少哦. 最好的学习资源——官网:http://velocity.apache.org/ 本系列打算采用如下结构对Velocity进行较为…
一.前言 Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力.而且Velocity被移植到不同的平台上,如.Net的NVelocity和js的Velocity.js,虽然各平台在使用和实现上略有差别,但大部分语法和引擎核心的实现是一致的,因此学习成本降低不少哦. 最好的学习资源——官网:http://velocity.apache.org/ 本系列打算采用如下结构对Velocity进行较为…
http://blog.csdn.net/qq_25237663/article/details/52262532 **************************************************************** Velocity是一个基于Java的模板引擎,通过特定的语法,Velocity可以获取在java语言中定义的对象,从而实现界面和java代码的真正分离,这意味着可以使用velocity替代jsp的开发模式了(实际上笔者所在的公司已经这么做了).这使得前端…