今天查了些资料,发现网上对于velocity中如何做数据大小比较的说法比较凌乱,通过实践,发现了有两个方法比较好用,记录在此。
1. 如果涉及的数据不超过Integer的范围,那么不用其它任何配置,在velocity模板中可以直接嵌入下面的代码,把String类型的数值变量转换成对应的int值
#set($value = "9")
#set($integer = 0)
$integer.parseInt($value) ##返回的便是int值
2. 如果涉及的数据长度超过了Integer的范围,那么使用上面的代码变回抛出异常,原因很简单,那么这时可以使用Math Tool来进行转换。
Math Tool实际是众多Velocity Tool的其中之一,有了toDouble()方法,可以使用$math.toDouble(Object string)直接把string类型的数值转换成Double型。使用方法如下:
1)将velocity-tools.jar放在指定的lib目录里,这个指定的目录可以在项目conf目录下的config配置文件设定。
2)配置web.xml
在web.xml中加入:
<init-param>
<param-name>org.apache.velocity.toolbox</param-name>
<param-value>/WEB-INF/toolbox.xml</param-value>
</init-param>
3)添加toolbox.xml
在/WEB-INF/目录下新建或者修改toolbox.xml文件,如下:
<?xml version="1.0"?>
<toolbox>
<tool>
<key>math</key>
<scope>application</scope>
<class>org.apache.velocity.tools.generic.MathTool</class> </tool>
</toolbox>