- 浏览: 1123239 次
- 性别:
- 来自: 火星郊区
博客专栏
-
OSGi
浏览量:0
文章分类
- 全部博客 (695)
- 项目管理 (48)
- OSGi (122)
- java (79)
- Vaadin (5)
- RAP (47)
- mysql (40)
- Maven (22)
- SVN (8)
- 孔雀鱼 (10)
- hibernate (9)
- spring (10)
- css (3)
- 年审 (6)
- ant (1)
- jdbc (3)
- FusionCharts (2)
- struts (4)
- 决策分析 (2)
- 生活 (10)
- 架构设计 (5)
- 破解 (2)
- 狼文化 (4)
- JVM (14)
- J2EE (1)
- 应用服务器 (1)
- 我的链接 (5)
- 数学 (2)
- 报表 (1)
- 百科 (6)
- Flex (7)
- log4j (2)
- PHP (1)
- 系统 (2)
- Web前端 (7)
- linux (6)
- Office (1)
- 安全管理 (5)
- python (2)
- dom4j (1)
- 工作流 (3)
- 养生保健 (4)
- Eclipse (8)
- 监控开发 (1)
- 设计 (3)
- CAS (1)
- ZK (41)
- BluePrint (3)
- 工具 (1)
- SWT (7)
- google (2)
- NIO (1)
- 企业文化 (2)
- Windoes (0)
- RCP (7)
- JavaScript (10)
- UML (1)
- 产品经理 (2)
- Velocity (10)
- C (1)
- 单元测试 (1)
- 设计模式 (2)
- 系统分析师 (2)
- 架构 (4)
- 面试 (2)
- 代码走查 (1)
- MongoDB (1)
- 企业流程优化 (1)
- 模式 (1)
- EJB (1)
- Jetty (1)
- Git (13)
- IPV6 (1)
- JQuery (8)
- SSH (1)
- mybatis (10)
- SiteMesh (2)
- JSTL (1)
- veloctiy (1)
- Spring MVC (1)
- struts2 (3)
- Servlet (1)
- 权限管理 (1)
- Java Mina (1)
- java 系统信息 (6)
- OSGi 基础 (3)
- html (1)
- spring--security (6)
- HTML5 (1)
- java爬虫搜索 (1)
- mvc (3)
最新评论
-
Tom.X:
http://osgia.com/
将web容器置于OSGi框架下进行web应用的开发 -
chenyuguxing:
你好, 为什么我的bundle export到felix工程中 ...
在Apache Felix中运行bundle -
string2020:
<niceManifest>true</ni ...
Bundle Plugin for Maven -
jsonmong:
OSGI,是未来的主流,目前已相当成熟。应用OSGI比较好的, ...
基于OSGi的声明式服务 -
zyhui98:
貌似是翻译过来的,有很少人在linux上做开发吧
如何成为“10倍效率”开发者
目录
1. 常用的模版技术 2
1.1. Velocity 2
1.2. Freemarker 2
2. 参考资料 2
2.1. Java Compiler Compiler 2
2.2. WebMacro 3
2.3. Turbine 3
2.4. 模版技术讨论网站 3
2.5. Spring in Action 3
3. Velocity 基本知识 3
3.1. Velocity 的工作原理 3
3.1.1. Velocity模板 4
3.1.2. Velocity上下文 4
3.1.3. 业务数据 4
3.1.4. Velocity引擎 4
4. Velocity 的常用语法 4
4.1. 变量 4
4.2. 变量赋值 5
4.3. 变量的正式引用符号 5
4.4. 没有定义的变量引用 5
4.5. 引用符号!(Quit引用符号) 5
4.6. 转义符号\ 6
4.7. 算术表达式 7
4.8. 字符串处理 7
4.9. #if / #elseif / #else 7
4.9.1. 简单的if语句使用 7
4.9.2. 嵌套if语句 8
4.10. 循环:foreach 8
4.11. 注释 8
4.12. 变量为对象 9
4.13. Velocity引用变量的方法 9
5. Velocity模版中使用中文变量值 9
6. Velocity和一般文件集成使用 9
7. Velocity模板文件嵌套使用 10
8. Velocity engine的单例和多例 10
8.1. 单例模式使用Velocity引擎 10
8.2. 多例模式使用Velocity引擎 10
8.2.1. 在模版引擎的初始化参数文件中设置相关参数 10
8.2.2. 模版本身的字符设置 10
8.2.3. Velocity类上的设置 10
9. 宏 11
9.1. 定义宏 11
9.2. 使用宏 11
9.3. 使用全局宏 11
9.3.1. 定义全局宏模版文件 11
9.3.2. 定义Velocity的引擎属性文件 11
9.3.3. 在实际的模版文件中引用全局宏 12
10. 在Velocity模版中访问java类的static field 12
11. 使用Velocity 处理Word文档 12
12.1. 定义word格式的Velocity模版 12
12.2. 使用Velocity产生相应内容的word文件 13
12. 使用Velocity 处理Excel文档 13
12.1. 定义Excel格式的Velocity模版 13
12.2. 使用Velocity产生相应内容的Excel文件 13
13. Velocity的上下文链(Context Chaining) 14
14. 使用velocity定制个性化页面 14
1. 常用的模版技术
1.1. Velocity
http://jakarta.apache.org/velocity/index.html
1.2. Freemarker
freemarker
http://www.freemarker.org/
freemarker plugin :
http://freemarker.sourceforge.net/eclipse.html
2. 参考资料
2.1. Java Compiler Compiler
https://javacc.dev.java.net/
Velocity uses a grammar-based parser generated by JavaCC (Java Compiler Compiler) using the JJTree extension to create an Abstract Syntax Tree.
2.2. WebMacro
http://www.webmacro.org
Velocity's design concept is borrowed from WebMacro. Those involved in the Velocity project acknowledge and appreciate the development and design work that went into the WebMacro project.
2.3. Turbine
http://jakarta.apache.org/turbine/index.html
Velocity is a Java-based template engine. It can be used as a standalone utility for generating source code, HTML, reports, or it can be combined with other systems to provide template services. Velocity will be tightly integrated with the Turbine web application framework. Velocity-Turbine provide a template service by which web applications may be developed according to a true MVC model.
2.4. 模版技术讨论网站
http://www.matrix.org.cn/topic.shtml?forumId=30
2.5. Spring in Action
参考书籍《Spring in Action》这本书
3. Velocity 基本知识
3.1. Velocity 的工作原理
最好你了解模版方法的设计模式的大致意思(你可以参阅下Gof的设计模式)。
参考 http://dev.yesky.com/325/2061825.shtml
3.1.1. Velocity模板
采用Velocity定义的文本文件,该文件采用Velocity语言定义模板文件。
3.1.2. Velocity上下文
是Velocity的一个容器,用于保存相关业务数据。
3.1.3. 业务数据
这里指需要应用到模板的数据
3.1.4. Velocity引擎
用户把业务数据放置到Velocity 上下文,然后Velocity引擎使用Velocity把上下文应用到模板,按照模板格式输出数据。
简单来说Velocity引擎从Velocity上下文获取相关数据,然后把Velocity模版的相关内容进行处理,输出到指定的对象中。
4. Velocity 的常用语法
VTL(Velocity Template Language)的常用语法
4.1. 变量
采用以$作为前缀来标识一个标量
Hello $foo World!
上面的$foo表示在模板中引用了一个名字为foo的变量
4.2. 变量赋值
#set( $foo = "Velocity" )
设置变量foo的值="Velocity"
4.3. 变量的正式引用符号
一般来说 VTL的变量以$作为开始分隔符号,结束符号一般是以回车符号或者空格符号,逗号等分开。
name :$username
name: $username,usersex:$sex
对于在紧接变量后有其他字符或者变量的情况下,采用正式的引用(分隔)符号来识别变量。
#set( $vice = "klepto" )
Jack is a ${vice}maniac.
4.4. 没有定义的变量引用
对于没有定义的变量引用,Velocity原样返回。
Hello $foox World!
如果在Velocity的上下文中没有定义该变量的值,那Velocity引擎将输出的内容还是为:
Hello $foox World!
4.5. 引用符号!(Quit引用符号)
参考 \velocitybasictest\template\VarExample1.vm
<input type=”text” value=”$email”>
如果初始时,$email没有值,所以文本框中会显示值$email,而更希望是空
白。下面是使用Quit引用符号的例子:
<input type="text" value="$!email">
当$email没有值时,Velocity会用空串替代$email。
4.6. 转义符号\
参考目录 \velocitybasictest\template\ VarExample1.vm
#set( $email = "foo" )
email is :$email
email is :\$email
4.7. 算术表达式
参考目录 \velocitybasictest\template\ExpressExample.vm
#set( $ foo = 1 )
#set( $value = $foo + 1 ) ## Addition
#set( $value = $bar - 1 ) ## Subtraction
#set( $value = $foo * $bar ) ## Multiplication
#set( $value = $foo / $bar ) ## Division
#set( $value = $foo % $bar ) ## Remainder
4.8. 字符串处理
参考目录 \velocitybasictest\template\StringExample.vm
字符串的串联,双引号中的引用会替换成相应的值
#set( $size = "Big" )
#set( $name = "Ben" )
#set($clock = "${size}Tall$name" )
The clock is $clock.
单引号,单引号中的引用原样输出
#set( $template = '$directoryRoot/$templateName’ )
4.9. #if / #elseif / #else
参考 \velocitybasictest\template\ IfExample.vm
4.9.1. 简单的if语句使用
#if( $foo )
Velocity!
#end
4.9.2. 嵌套if语句
## embed if
#if($foo)
variable foo =true
#if($foo2)
variable foo2 =true
#else
variable foo2 =false
#end
#if($foo3)
variable foo3 =true
#else
variable foo3 =false
#end
#end
4.10. 循环:foreach
参考 \velocitybasictest\template\ LoopExample.vm
$velocityCount是Velocity表示循环计数的内部变量,缺省开始值为1。
例子如下:
#foreach ( $product in $allProducts )
The $velocityCount is--- $product.name
#end
可以在#foreach指令中使用范围操作符[n..m],其中n和m必须是整型,例子如下:
#foreach( $bar in [2..-2] )
$bar
#end
4.11. 注释
以##作为标识来定以一个注释,好像java中的//符号
Hello $foo World! ## This text is not visible
多行注释(包括在#*和*#之间)好像java中的/* */注释符号
4.12. 变量为对象
Velocity模板中的变量为对象类型,可以采用$VTL标识符. VTL标识符方式引用对象的属性。
User address is :$customer.Address
4.13. Velocity引用变量的方法
Set user name :$user.setName(“www”)
User name now is :$user.getName()
5. Velocity模版中使用中文变量值
参考目录
velocitytest\velocitybasictest\src\gbk
参考
http://www.j2medev.com/Article/Clas...00607/2765.html
注意:
不允许在模版中使用中文变量
6. Velocity和一般文件集成使用
使用#include来包含文件到模板中
例如在指定模版中包含文件:
#include("FileInTemplateExample.txt")
7. Velocity模板文件嵌套使用
例如在指定模版中包含模版文件:
below is TemplateInTemplateExample2.vm" content
#parse("TemplateInTemplateExample2.vm")
8. Velocity engine的单例和多例
参考目录 velocitytest\velocitybasictest\src\velocityengineuse
8.1. 单例模式使用Velocity引擎
直接使用Velocity类进行初始化,然后使用Velocity类获得模版
8.2. 多例模式使用Velocity引擎
通过VelocityEngine类创建Velocity引擎和创建模板
8.2.1. 在模版引擎的初始化参数文件中设置相关参数
假设velocity.properties为初始化参数文件,在velocity.properties中分别指定二者的值:
input.encoding = GBK
output.encoding = GBK
8.2.2. 模版本身的字符设置
Template template = engine.getTemplate("news.vm","GBK");
8.2.3. Velocity类上的设置
org.apache.velocity.app.Velocity 类的以下方法:
public static Template getTemplate(String name, String encoding)
public static boolean mergeTemplate( String templateName, String encoding, Context context, Writer writer )
一般是上面的第一和第二组合使用,当然上面的第一和第三组合使用也可以
9. 宏
宏使用的方法:先定义宏,然后再使用宏
参考目录: velocitybasictest\src\macro\MacroUse
9.1. 定义宏
## define a macro.the name of the macro is myMacro
#macro(myMacro)
this is the first line of my Macro
this is the second line of my Macro
#end
9.2. 使用宏
## use my defining macro:myMacro
myMacro content is :
#myMacro()
9.3. 使用全局宏
9.3.1. 定义全局宏模版文件
9.3.2. 定义Velocity的引擎属性文件
在该属性文件中,指定全局宏模版文件的名字
9.3.3. 在实际的模版文件中引用全局宏
10. 在Velocity模版中访问java类的static field
参考org.apache.velocity.app.FieldMethodizer
参考目录 \velocitybasictest\src\staticfield
类staticfield.WdzFieldMethodizer继承了FieldMethodizer,可以让Velocity模板访问java对象的非私有属性的值,但是不能在模板中直接修改这些没有public读写方法的非私有属性的值。
目前是可以访问static field,如果需要直接访问private或者其他属性的字段,可以考虑继承FieldMethodizer,然后在对象放入到上下文之前先用FieldMethodizer的后代包装再放入。
不过FieldMethodizer没有定义父接口,需要自己定义FieldMethodizer的后代才可以达到上述目的,不是很爽。
11. 使用Velocity 处理Word文档
要求Office2003以上。
12.1. 定义word格式的Velocity模版
新建一个word文件,在文件里面定义Velocity需要替换的变量,采用类似 $VarName格式或者${VarName}格式定义Velocity变量。
保存word文件为XML格式,一般来说,需要把保存的XML文件确认其encoding="GBK"
注意:定义的Velocity变量名字不能是中文名,采用英文名字作为Velocity变量名字。
参考
velocityofficeuse\template\Word的velocity模版1.doc
velocityofficeuse\template\ Word的velocity模版1.xml
12.2. 使用Velocity产生相应内容的word文件
使用Velocity引擎为word格式的Velocity模板产生word内容文件。
参考
velocityofficeuse\Word的velocity模版生成文件1.xml
velocityofficeuse\src\wordusevelocity\WordVelocityUse1.java
12. 使用Velocity 处理Excel文档
要求Office2003以上。
12.1. 定义Excel格式的Velocity模版
新建一个Excel文件,在文件里面定义Velocity需要替换的变量,采用类似 $VarName格式或者${VarName}格式定义Velocity变量。
保存Excel文件为XML格式,一般来说,需要把保存的XML文件确认其encoding="GBK"
注意:定义的Velocity变量名字不能是中文名,采用英文名字作为Velocity变量名字。
参考
velocityofficeuse\template\Excel的velocity模版1.doc
velocityofficeuse\template\ Excel的velocity模版1.xml
12.2. 使用Velocity产生相应内容的Excel文件
使用Velocity引擎为word格式的Velocity模板产生Excel内容文件。
参考
velocityofficeuse\Excel的velocity模版生成文件1.xml
velocityofficeuse\src\wordusevelocity\ExcelVelocityUse1.java
13. Velocity的上下文链(Context Chaining)
采用责任链模式建立应用的Velocity上下文链.
参考 velocitytest\velocitybasictest\src\contextchaining
参考类
org.apache.velocity.VelocityContext
org.apache.velocity.context.AbstractContext
AbstractContext 类的以下方法:
public Object get(String key)
public abstract Object internalGet( String key );
VelocityContext先从自己内部中寻找当前key的值,如果找不到,到它嵌套的VelocityContext里面去寻找当前key的值。
具体责任链式的Velocity上下文创建方式参考VelocityContext类
14. 使用velocity定制个性化页面
使用velocity来使用户更好的浏览他们感兴趣的内容,个用户登陆时都拥有自己的个性化页面。
1. 常用的模版技术 2
1.1. Velocity 2
1.2. Freemarker 2
2. 参考资料 2
2.1. Java Compiler Compiler 2
2.2. WebMacro 3
2.3. Turbine 3
2.4. 模版技术讨论网站 3
2.5. Spring in Action 3
3. Velocity 基本知识 3
3.1. Velocity 的工作原理 3
3.1.1. Velocity模板 4
3.1.2. Velocity上下文 4
3.1.3. 业务数据 4
3.1.4. Velocity引擎 4
4. Velocity 的常用语法 4
4.1. 变量 4
4.2. 变量赋值 5
4.3. 变量的正式引用符号 5
4.4. 没有定义的变量引用 5
4.5. 引用符号!(Quit引用符号) 5
4.6. 转义符号\ 6
4.7. 算术表达式 7
4.8. 字符串处理 7
4.9. #if / #elseif / #else 7
4.9.1. 简单的if语句使用 7
4.9.2. 嵌套if语句 8
4.10. 循环:foreach 8
4.11. 注释 8
4.12. 变量为对象 9
4.13. Velocity引用变量的方法 9
5. Velocity模版中使用中文变量值 9
6. Velocity和一般文件集成使用 9
7. Velocity模板文件嵌套使用 10
8. Velocity engine的单例和多例 10
8.1. 单例模式使用Velocity引擎 10
8.2. 多例模式使用Velocity引擎 10
8.2.1. 在模版引擎的初始化参数文件中设置相关参数 10
8.2.2. 模版本身的字符设置 10
8.2.3. Velocity类上的设置 10
9. 宏 11
9.1. 定义宏 11
9.2. 使用宏 11
9.3. 使用全局宏 11
9.3.1. 定义全局宏模版文件 11
9.3.2. 定义Velocity的引擎属性文件 11
9.3.3. 在实际的模版文件中引用全局宏 12
10. 在Velocity模版中访问java类的static field 12
11. 使用Velocity 处理Word文档 12
12.1. 定义word格式的Velocity模版 12
12.2. 使用Velocity产生相应内容的word文件 13
12. 使用Velocity 处理Excel文档 13
12.1. 定义Excel格式的Velocity模版 13
12.2. 使用Velocity产生相应内容的Excel文件 13
13. Velocity的上下文链(Context Chaining) 14
14. 使用velocity定制个性化页面 14
1. 常用的模版技术
1.1. Velocity
http://jakarta.apache.org/velocity/index.html
1.2. Freemarker
freemarker
http://www.freemarker.org/
freemarker plugin :
http://freemarker.sourceforge.net/eclipse.html
2. 参考资料
2.1. Java Compiler Compiler
https://javacc.dev.java.net/
Velocity uses a grammar-based parser generated by JavaCC (Java Compiler Compiler) using the JJTree extension to create an Abstract Syntax Tree.
2.2. WebMacro
http://www.webmacro.org
Velocity's design concept is borrowed from WebMacro. Those involved in the Velocity project acknowledge and appreciate the development and design work that went into the WebMacro project.
2.3. Turbine
http://jakarta.apache.org/turbine/index.html
Velocity is a Java-based template engine. It can be used as a standalone utility for generating source code, HTML, reports, or it can be combined with other systems to provide template services. Velocity will be tightly integrated with the Turbine web application framework. Velocity-Turbine provide a template service by which web applications may be developed according to a true MVC model.
2.4. 模版技术讨论网站
http://www.matrix.org.cn/topic.shtml?forumId=30
2.5. Spring in Action
参考书籍《Spring in Action》这本书
3. Velocity 基本知识
3.1. Velocity 的工作原理
最好你了解模版方法的设计模式的大致意思(你可以参阅下Gof的设计模式)。
参考 http://dev.yesky.com/325/2061825.shtml
3.1.1. Velocity模板
采用Velocity定义的文本文件,该文件采用Velocity语言定义模板文件。
3.1.2. Velocity上下文
是Velocity的一个容器,用于保存相关业务数据。
3.1.3. 业务数据
这里指需要应用到模板的数据
3.1.4. Velocity引擎
用户把业务数据放置到Velocity 上下文,然后Velocity引擎使用Velocity把上下文应用到模板,按照模板格式输出数据。
简单来说Velocity引擎从Velocity上下文获取相关数据,然后把Velocity模版的相关内容进行处理,输出到指定的对象中。
4. Velocity 的常用语法
VTL(Velocity Template Language)的常用语法
4.1. 变量
采用以$作为前缀来标识一个标量
Hello $foo World!
上面的$foo表示在模板中引用了一个名字为foo的变量
4.2. 变量赋值
#set( $foo = "Velocity" )
设置变量foo的值="Velocity"
4.3. 变量的正式引用符号
一般来说 VTL的变量以$作为开始分隔符号,结束符号一般是以回车符号或者空格符号,逗号等分开。
name :$username
name: $username,usersex:$sex
对于在紧接变量后有其他字符或者变量的情况下,采用正式的引用(分隔)符号来识别变量。
#set( $vice = "klepto" )
Jack is a ${vice}maniac.
4.4. 没有定义的变量引用
对于没有定义的变量引用,Velocity原样返回。
Hello $foox World!
如果在Velocity的上下文中没有定义该变量的值,那Velocity引擎将输出的内容还是为:
Hello $foox World!
4.5. 引用符号!(Quit引用符号)
参考 \velocitybasictest\template\VarExample1.vm
<input type=”text” value=”$email”>
如果初始时,$email没有值,所以文本框中会显示值$email,而更希望是空
白。下面是使用Quit引用符号的例子:
<input type="text" value="$!email">
当$email没有值时,Velocity会用空串替代$email。
4.6. 转义符号\
参考目录 \velocitybasictest\template\ VarExample1.vm
#set( $email = "foo" )
email is :$email
email is :\$email
4.7. 算术表达式
参考目录 \velocitybasictest\template\ExpressExample.vm
#set( $ foo = 1 )
#set( $value = $foo + 1 ) ## Addition
#set( $value = $bar - 1 ) ## Subtraction
#set( $value = $foo * $bar ) ## Multiplication
#set( $value = $foo / $bar ) ## Division
#set( $value = $foo % $bar ) ## Remainder
4.8. 字符串处理
参考目录 \velocitybasictest\template\StringExample.vm
字符串的串联,双引号中的引用会替换成相应的值
#set( $size = "Big" )
#set( $name = "Ben" )
#set($clock = "${size}Tall$name" )
The clock is $clock.
单引号,单引号中的引用原样输出
#set( $template = '$directoryRoot/$templateName’ )
4.9. #if / #elseif / #else
参考 \velocitybasictest\template\ IfExample.vm
4.9.1. 简单的if语句使用
#if( $foo )
Velocity!
#end
4.9.2. 嵌套if语句
## embed if
#if($foo)
variable foo =true
#if($foo2)
variable foo2 =true
#else
variable foo2 =false
#end
#if($foo3)
variable foo3 =true
#else
variable foo3 =false
#end
#end
4.10. 循环:foreach
参考 \velocitybasictest\template\ LoopExample.vm
$velocityCount是Velocity表示循环计数的内部变量,缺省开始值为1。
例子如下:
#foreach ( $product in $allProducts )
The $velocityCount is--- $product.name
#end
可以在#foreach指令中使用范围操作符[n..m],其中n和m必须是整型,例子如下:
#foreach( $bar in [2..-2] )
$bar
#end
4.11. 注释
以##作为标识来定以一个注释,好像java中的//符号
Hello $foo World! ## This text is not visible
多行注释(包括在#*和*#之间)好像java中的/* */注释符号
4.12. 变量为对象
Velocity模板中的变量为对象类型,可以采用$VTL标识符. VTL标识符方式引用对象的属性。
User address is :$customer.Address
4.13. Velocity引用变量的方法
Set user name :$user.setName(“www”)
User name now is :$user.getName()
5. Velocity模版中使用中文变量值
参考目录
velocitytest\velocitybasictest\src\gbk
参考
http://www.j2medev.com/Article/Clas...00607/2765.html
注意:
不允许在模版中使用中文变量
6. Velocity和一般文件集成使用
使用#include来包含文件到模板中
例如在指定模版中包含文件:
#include("FileInTemplateExample.txt")
7. Velocity模板文件嵌套使用
例如在指定模版中包含模版文件:
below is TemplateInTemplateExample2.vm" content
#parse("TemplateInTemplateExample2.vm")
8. Velocity engine的单例和多例
参考目录 velocitytest\velocitybasictest\src\velocityengineuse
8.1. 单例模式使用Velocity引擎
直接使用Velocity类进行初始化,然后使用Velocity类获得模版
8.2. 多例模式使用Velocity引擎
通过VelocityEngine类创建Velocity引擎和创建模板
8.2.1. 在模版引擎的初始化参数文件中设置相关参数
假设velocity.properties为初始化参数文件,在velocity.properties中分别指定二者的值:
input.encoding = GBK
output.encoding = GBK
8.2.2. 模版本身的字符设置
Template template = engine.getTemplate("news.vm","GBK");
8.2.3. Velocity类上的设置
org.apache.velocity.app.Velocity 类的以下方法:
public static Template getTemplate(String name, String encoding)
public static boolean mergeTemplate( String templateName, String encoding, Context context, Writer writer )
一般是上面的第一和第二组合使用,当然上面的第一和第三组合使用也可以
9. 宏
宏使用的方法:先定义宏,然后再使用宏
参考目录: velocitybasictest\src\macro\MacroUse
9.1. 定义宏
## define a macro.the name of the macro is myMacro
#macro(myMacro)
this is the first line of my Macro
this is the second line of my Macro
#end
9.2. 使用宏
## use my defining macro:myMacro
myMacro content is :
#myMacro()
9.3. 使用全局宏
9.3.1. 定义全局宏模版文件
9.3.2. 定义Velocity的引擎属性文件
在该属性文件中,指定全局宏模版文件的名字
9.3.3. 在实际的模版文件中引用全局宏
10. 在Velocity模版中访问java类的static field
参考org.apache.velocity.app.FieldMethodizer
参考目录 \velocitybasictest\src\staticfield
类staticfield.WdzFieldMethodizer继承了FieldMethodizer,可以让Velocity模板访问java对象的非私有属性的值,但是不能在模板中直接修改这些没有public读写方法的非私有属性的值。
目前是可以访问static field,如果需要直接访问private或者其他属性的字段,可以考虑继承FieldMethodizer,然后在对象放入到上下文之前先用FieldMethodizer的后代包装再放入。
不过FieldMethodizer没有定义父接口,需要自己定义FieldMethodizer的后代才可以达到上述目的,不是很爽。
11. 使用Velocity 处理Word文档
要求Office2003以上。
12.1. 定义word格式的Velocity模版
新建一个word文件,在文件里面定义Velocity需要替换的变量,采用类似 $VarName格式或者${VarName}格式定义Velocity变量。
保存word文件为XML格式,一般来说,需要把保存的XML文件确认其encoding="GBK"
注意:定义的Velocity变量名字不能是中文名,采用英文名字作为Velocity变量名字。
参考
velocityofficeuse\template\Word的velocity模版1.doc
velocityofficeuse\template\ Word的velocity模版1.xml
12.2. 使用Velocity产生相应内容的word文件
使用Velocity引擎为word格式的Velocity模板产生word内容文件。
参考
velocityofficeuse\Word的velocity模版生成文件1.xml
velocityofficeuse\src\wordusevelocity\WordVelocityUse1.java
12. 使用Velocity 处理Excel文档
要求Office2003以上。
12.1. 定义Excel格式的Velocity模版
新建一个Excel文件,在文件里面定义Velocity需要替换的变量,采用类似 $VarName格式或者${VarName}格式定义Velocity变量。
保存Excel文件为XML格式,一般来说,需要把保存的XML文件确认其encoding="GBK"
注意:定义的Velocity变量名字不能是中文名,采用英文名字作为Velocity变量名字。
参考
velocityofficeuse\template\Excel的velocity模版1.doc
velocityofficeuse\template\ Excel的velocity模版1.xml
12.2. 使用Velocity产生相应内容的Excel文件
使用Velocity引擎为word格式的Velocity模板产生Excel内容文件。
参考
velocityofficeuse\Excel的velocity模版生成文件1.xml
velocityofficeuse\src\wordusevelocity\ExcelVelocityUse1.java
13. Velocity的上下文链(Context Chaining)
采用责任链模式建立应用的Velocity上下文链.
参考 velocitytest\velocitybasictest\src\contextchaining
参考类
org.apache.velocity.VelocityContext
org.apache.velocity.context.AbstractContext
AbstractContext 类的以下方法:
public Object get(String key)
public abstract Object internalGet( String key );
VelocityContext先从自己内部中寻找当前key的值,如果找不到,到它嵌套的VelocityContext里面去寻找当前key的值。
具体责任链式的Velocity上下文创建方式参考VelocityContext类
14. 使用velocity定制个性化页面
使用velocity来使用户更好的浏览他们感兴趣的内容,个用户登陆时都拥有自己的个性化页面。
发表评论
-
springmvc+velocity 在vm模板上添加通用工具类对象变量
2012-05-29 14:55 2327在平时工作的项目中经常会在vm模板中添加自定义的工具类,由 ... -
struts2 与 velocity 整合 探究
2012-05-29 13:21 1561我这边引出几个问题。 问题1,struts2 是怎么让 v ... -
模板:velocity和freemarker的比较
2012-05-21 17:24 1905/** *作者:张荣华(ahu ... -
velocity初体验
2012-05-14 14:57 1101VelocityServlet: Java代码 ... -
Velocity中VM文件找不到问题的解决
2012-04-14 11:05 1406在Velocity中默认加载vm文件的类是FileResour ... -
Velocity分页模板
2012-04-11 13:08 4996#*宏pageGrid:自定义表格宏${gridInfo} ... -
Velocity模版与Ajax灵活应用
2012-04-11 13:06 5423一:先简单介绍一下velocity的模版页面 veloc ... -
Velocity教程
2012-04-11 13:03 1031Velocity是一个基于java的模板引擎(template ... -
eclipse上的几个Velocity插件
2012-04-01 08:54 1490最近在研究XWiki,它是支持Velocity的,所以就顺便调 ...
相关推荐
该文档为velocity学习笔记,包含一些常见问题
关于velocity的学习资料,velocity教程和velocity用户手册
Velocity学习资料,从网上找到的其中学习笔记由个人编写,希望大家借鉴,后续继续完善中。
velocity学习笔记与struts2整合 velocity学习笔记与struts2整合 velocity学习笔记与struts2整合
使用struts配置含有velocity的Web项目,并且成功跳转,并使用Velocity展示数据
Velocity教程
Velocity用户指南旨在帮助页面设计者和内容提供者了解Velocity和其简单而又强大的脚本语言(Velocity Template Language (VTL))。本指南中有很多示例展示了用Velocity来讲动态内容嵌入到网站之中,但是所有的VTL ...
JAVA的Velocity语法学习 内涵《Velocity_java开发指南》《Java的模板引擎Velocity初体验》 以及所必须的jar ,和大家一块学习,很好哦
velocity中文手册 velocity学习资料
Velocity中文学习指南
Velocity学习指南
velocity学习资料
Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎Velocity模板引擎
Velocity 的主要目标是通过模板生成格式文档. 因此, Velocity自身不提供任何Web相关的功能. 当你需要开发Web应用时, 需要一个框架来接收 HTTP请求和, 处理用户认证,执行业务逻辑调用,最后生成应答内容返回给客户端...
Velocity 入门资料,适合 初学者学习,内容浅显易懂
本课程的定位是velocity的系统教学课程 , 从基础到进阶 , 所以只要对velocity感兴趣 , 想系统学习velocity的开发人员都可以学习本课程 ! 学习本课程对你有如下要求 : l 有一定的JAVA编程基础(velocity engine要求) l...
Velocity Velocity Velocity Velocity Velocity Velocity Velocity Velocity Velocity Velocity
Velocity是前段的技术,它非常的灵活,跟JSP相差不多,但是动态的显示数据,值的我们学习!
Velocity学习