Velocity.properties配置示例

[/code]使固定后缀名的所有页面都被velocity渲染
[code="java"]
<servlet>
<servlet-name>velocity</servlet-name>
<servlet-class>
org.apache.velocity.tools.view.servlet.VelocityViewServlet
</servlet-class>
<init-param>
<param-name>
org.apache.velocity.properties
</param-name>
<param-value>
/WEB-INF/classes/velocity.properties
</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>velocity</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>


其中velocity.properties(注意classloader和encoding)


resource.loader = file
file.resource.loader.description = Velocity File Resource Loader
file.resource.loader.class = org.apache.velocity.tools.view.WebappResourceLoader
file.resource.loader.path = ./WEB-INF/templates
file.resource.loader.cache = false
file.resource.loader.modificationCheckInterval = 2
input.encoding=UTF-8
output.encoding=UTF-8

runtime.log.logsystem.class = org.apache.velocity.runtime.log.SimpleLog4JLogSystem
runtime.log.logsystem.log4j.category = velocity_log
runtime.log.error.stacktrace = false
runtime.log.warn.stacktrace = false
runtime.log.info.stacktrace = false
runtime.log.debug.stacktrace = false
runtime.log.invalid.reference = false



可以在tools.xml定义变量、velocity提供的类、以及自己定义的类。下面分别举例

<?xml version="1.0" encoding="UTF-8"?>
<toolbox>
<data>
<key>name</key>
<value>severus</value>
</data>
<tool>
<key>myTool</key>
<class>net.xxx.velocity.tools.MyTool</class>
</tool>
<tool>
<key>date</key>
<scope>request</scope>
<class>org.apache.velocity.tools.generic.DateTool</class>
<parameter name="format" value="yyyy-MM-dd hh:mm:mm"/>
</tool>
</toolbox>


其中MyTool如下


public class MyTool {
public String getMessage() {
return "message";
}

public String sayHello(String s){
return "say hello by macro " + s;
}
}



由于html被定义为velocity,于是html可以这样用

<html>
<body >
Hello, $name <br>
$myTool.message <br>
$date.date<br>
</body>
</html>



解析结果为

Hello, severus
message
Sun Jun 07 04:09:09 CST 2009



使用macro自定义操作函数。

可以用macro.vm集中定义。

tools.xml集中加引用,macro.vm中集中加函数。



在velocity.properties中加一句


velocimacro.library = WEB-INF/macro.vm



然后macro.vm

#macro(sayHello $name)
$myTool.sayHello($name)
#end



于是可以在html中这样用

#sayHello("severus")




say hello by macro severus

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值