标签: velocity

如何在Velocity foreach循环中获得从零开始的计数

我试图在Velocity #foreach指令中获得一个从零开始的计数器.

如果我使用:

#foreach ($item in $list)
   item.getName() : $velocityCount
#end
Run Code Online (Sandbox Code Playgroud)

我会得到:

Fred : 1
Wilma : 2
Barney : 3
Run Code Online (Sandbox Code Playgroud)

但是我需要:

Fred : 0
Wilma : 1
Barney : 2
Run Code Online (Sandbox Code Playgroud)

从速度模板的角度来看,解决方案必须尽可能简单.

编辑:
我可以使用:

#foreach ($item in $list)
   #set( $num = $velocityCount - 1 ) //The white space in mandatory
   item.getName() : $num
#end
Run Code Online (Sandbox Code Playgroud)

它的工作原理.但我正在寻找更优雅的解决方案.

编辑2:
我也需要基于单一的计数器.也就是说,在同一模板中,我很可能会有一个#foreach指令需要一个基于零的计数器和另一个#foreach需要一个基本计数器的指令.

java foreach velocity

15
推荐指数
2
解决办法
2万
查看次数

在Velocity中取消设置变量

是否可以将Velocity引用设置为"null"或"undefined"?

Velocity模板语言参考

#set - 建立参考格式的值:

# [ { ] set [ } ] ( $ref = [ ", ' ]arg[ ", ' ] )

用法:

$ref - 赋值的LHS必须是变量引用或属性引用.

arg - 赋值的RHS,arg如果用双引号括起来解析,如果用单引号括起来则不解析.如果RHS评估为null,则不会将其分配给LHS.(强调我的)

我找不到等效的#unset宏.

java templates velocity

14
推荐指数
2
解决办法
1万
查看次数

速度模板 - 新线

我一直在使用Apache的Velocity引擎和自定义模板.
问题是,我无法生成具有相应换行符的String.我尝试了几乎所有我找到的东西,例如使用$ esc.n和$ esc.newline(我已经在我的项目中使用了逃生工具)但似乎我目前使用的版本不支持它(1.4 ),检查是否可以使用'\n','\\n'甚至'\\\n',但同样的事情.

有没有人对此有任何解决方案?

java templates velocity

14
推荐指数
3
解决办法
3万
查看次数

如何正确设置加载速度路径

我希望我的velocityengine从设计的路径中寻找模板.我这样做了:

<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
 <property name="velocityProperties">
   <value>
     resource.loader=class
     class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
     class.resource.loader.resourceLoaderPath=/mytemplates
   </value>
 </property>
Run Code Online (Sandbox Code Playgroud)

但仍在类文件夹中查找模板.任何的想法?

spring velocity spring-mvc

14
推荐指数
2
解决办法
3万
查看次数

如何格式化Velocity模板中的数字?

我在速度模板中获取了一个java对象.该对象有一个double值,我想格式化为2位小数并将其显示在我的模板中.

我得到一个对象的类是这样的

Class Price
{
double value;
String currency;
}
Run Code Online (Sandbox Code Playgroud)

在我的力度模板中,即时获取这样的值

$price.value
Run Code Online (Sandbox Code Playgroud)

但我需要在显示之前将其格式化为2位小数.

我想转换

23.59004至23.59

35.7至35.70

3.0至3.00

9至9.00

请告诉我如何在速度模板中执行此操作?我搜索了很多,发现我可以使用速度工具,但没有相关的例子吗?我可以在模板中使用力度工具吗?

java velocity

14
推荐指数
2
解决办法
4万
查看次数

如何禁用速度日志

我一直试图禁用Velocity日志,到目前为止我发现的唯一方法是获得积极的结果是设置:

runtime.log.logsystem.class=org.apache.velocity.runtime.log.NullLogSystem
Run Code Online (Sandbox Code Playgroud)

但是在velocity.jar里面的velocity.properties里面.

我在Web应用程序(tomcat)上下文中使用了velocity.有没有办法禁用速度(通过设置以前的属性或其他)但不修改JAR?

无法修改任何CODE

提前致谢

java logging tomcat velocity

14
推荐指数
2
解决办法
2万
查看次数

我可以将artifactId转换为myven原型中的classname前缀吗?

我正在创建一个maven原型,并且在项目中生成了一个想要一个以生成项目的工件ID命名的类.

工件ID的格式如下:the-project-name并且应该命名类TheProjectNameMain.

我试图在我这样做,archetype-metadata.xml但我无法做到这一点.

<archetype-descriptor>
    <requiredProperties>
        <requiredProperty key="classNamePrefix">
            <defaultValue>${WordUtils.capitalize(artifactId.replaceAll("-", " ")).replaceAll(" ", "")}</defaultValue>
        </requiredProperty>        
    </requiredProperties>
</archetype-descriptor>
Run Code Online (Sandbox Code Playgroud)

正如你所看到我试图使用WordUtils(来自apache-commons),但我猜这是不可用的,因为我收到了一个错误.Error merging velocity templates:.....我也尝试了不同的组合,.replaceAll但我无法获得正确的格式.

在这种情况下,有没有人知道从a-hypenated-string到CamelCaseClassName的方法?

java velocity maven maven-archetype

14
推荐指数
3
解决办法
6823
查看次数

14
推荐指数
2
解决办法
9202
查看次数

如何在vm文件中选择$ date的格式?

我有一个$ date定义为"星期几,月份日,年"ex:2013年2月26日星期二

我不知道$ date的定义在哪里,但我喜欢将小时添加到这个$ date变量,或者用小时创建一个变量,你知道我怎么能把它放在.vm文件中?

java velocity

13
推荐指数
3
解决办法
3万
查看次数

使用velocity split()将字符串拆分为数组似乎不起作用

我讨厌速度,很少使用它,但有时我会在工作中被要求这样做.我永远无法弄清楚如何使用它.

我有这个

#foreach( $product in $browseSiteProducts )
    alert("$product.productId");
    #foreach( $stringList in $product.productId.split("|") )
        alert("inner loop");
    #end
#end
Run Code Online (Sandbox Code Playgroud)

$ browseSiteProducts是一个数组.或列表.管他呢.我甚至不知道.productId的第一个警报工作正常.我得到"|" 这是打印出来时的预期.然后内循环应该拆分为"|" 作为分隔符,并给我"内循环"的警报.但我总是得到24个警报,因为productId中有24个字符.所以split()没有正确地为我划界.我到底做错了什么?

谢谢凯尔

apache arrays split velocity

12
推荐指数
2
解决办法
3万
查看次数