Velocity自定义授命函数

[list]
[*]简述:项目发版时需要添加版本号码,以往都是已发版日期,每次发版前都需要更改,感觉麻烦
[*]问题:因为版本每次不同即可,可使用UUID代替
[*]实现:在Velocity中使用自定义授命函数
[*]过程:[/list]
[b]
UUID的概念,
参考:
[url]http://www.cnblogs.com/jdonson/archive/2009/07/22/1528466.html[/url]
[url]http://blog.csdn.net/carefree31441/archive/2009/03/17/3998553.aspx[/url]
[size=medium][u]UUID可以当做表中的主键[/u][/size][/b]
1.定义页面
<html><body>#version()</body></html>

2.定义velocity.properties,放在WEB-INF下
input.encoding = UTF-8
output.encoding =UTF-8
webapp.resource.loader.cache = true
webapp.resource.loader.modificationCheckInterval = 1
velocimacro.library.autoreload = false
velocimacro.library = /WEB-INF/VM_global_library.vm
velocimacro.permissions.allow.inline = true
velocimacro.permissions.allow.inline.to.replace.global = false
velocimacro.permissions.allow.inline.local.scope = false
velocimacro.context.localscope = false
##配置函数路径
userdirective=web.tags.VersionTag
##

3.定义函数

package web.tags;

import java.io.IOException;
import java.io.Writer;
import java.util.UUID;

import org.apache.velocity.context.InternalContextAdapter;
import org.apache.velocity.exception.MethodInvocationException;
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.ResourceNotFoundException;
import org.apache.velocity.runtime.directive.Directive;
import org.apache.velocity.runtime.parser.node.Node;

public class VersionTag extends Directive{

@Override
public String getName() {
return TagNameConstants.VERSION_TAG;//见4常量类,即在VM中使用的名称,version
}
@Override
public int getType() {
return LINE;//或BLOCK
}
@Override
public boolean render(InternalContextAdapter context, Writer writer,
Node node) throws IOException, ResourceNotFoundException,
ParseErrorException, MethodInvocationException {
writer.write(UUID.randomUUID().toString());//输出的内容
return false;
}
}

4.可添加常量类,便于管理

package web.tags;
public class TagNameConstants {
/** 显示版本号 使用#version */
public final static String VERSION_TAG = "version" ;
}

[b]
参考文献:[url]http://www.educity.cn/wenda/379584.html[/url]
[/b]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值