velocity中的velocityCounter不起作用的原因

    今天用org.springframework.ui.velocity.VelocityEngineFactoryBean 时,velocityCounter这个变量的时候死活不起作用,折腾了良久也不行,网上也找不到任何资料。以前用原生态不与spring集成时还没有问题呢,没办法,只有规规矩矩的把源码下载下来跟跟看了。

   最后却发现是原来是配置文件的原因

一部分部分源码

RuntimeConstants

    /** Counter reference name in #foreach directives. */
    String COUNTER_NAME = "directive.foreach.counter.name";

org.apache.velocity.runtime.directive.Foreach


    counterName = rsvc.getString(RuntimeConstants.COUNTER_NAME);
        counterName = rsvc.getString(RuntimeConstants.COUNTER_NAME);
        hasNextName = rsvc.getString(RuntimeConstants.HAS_NEXT_NAME);
        counterInitialValue = rsvc.getInt(RuntimeConstants.COUNTER_INITIAL_VALUE);
 if (!"velocityCount".equals(counterName))


原来这个是变量名可以配置的,而我的配置文件

<bean id="velocityEngine" class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
		<property name="resourceLoaderPath" value="classpath*:template" />
        <property name="velocityProperties">
			<props>
				<prop key="resource.loader">class</prop>
				<prop key="class.resource.loader.class">org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader</prop>
				<prop key="velocimacro.library" />
				<prop key="directive.foreach.counter.name">loopCounter</prop>
				<prop key="directive.foreach.counter.initial.value">1</prop>
				<prop key="file.resource.loader.cache">true</prop>
				<prop key="parser.pool.size">50</prop>
				<prop key="input.encoding">UTF-8</prop>
				<prop key="output.encoding">UTF-8</prop>
			</props>
		</property>
    </bean>


配置成了loopCounter,所以必须用loopCounter才行。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值