2012-12-31 44 views
2

我有一个使用requiredProperty包含一个数字,但速度变量是字符串的Maven archtype。所以,在我的模板,我不能,如果这个属性是多了一些更大的考验:Maven原型所需财产编号

#if($myVar gt 5) 

我已经测试了以下solution没有成功。

我也试过这样:

#set($intVar = Integer.parseInt($myVar)) 

这也是失败的原型产生。

有什么建议吗?

回答

1

你不能从Velociy中引用类,所以Integer.parseInt将不起作用。但是,由于在Java中任何静态方法都可以作为实例方法调用,并且Velocity只是变相的Java,所以您可以在任何整数上调用parseInt。所以,你可以试试这招:

#if ($myVar.length().parseInt($myVar) gt 5) 

你得到从你假设你有,$myVar的一个变量开始的整数举行。

+0

它不是优雅的,但它的工作原理;) – krampstudio

+0

另一个更清洁的选项是将Integer.class设置为Velocity变量,当你建立在Java中的上下文,然后引用,即在Java中:context.put(“intClass”,Integer.class);和Velocity:$ intClass.parseInt($ myVar) – centic

+0

除了Velocity部分是由Maven处理的,所以这需要在Maven中深入挖掘。 –