在velocity中如果需要进行计算

转自http://liu400liu.iteye.com/blog/1197466

最近项目一直用veloctiy作为前端模板,velocity还算简单易学,但是今天在用到减法运算是我蛋疼了。看例子:

1、example1.vm

 

Html代码 
  1. <html >  
  2.     #set($a=10)  
  3.     <span>$a-1</span>  
  4.     ------------  
  5.       
  6.     输出为:$a-1  
  7.   
  8.     ------------  
  9. </html>  

   这个输出还可以理解,velocity把a-1当做一个变量,所有没有取到值,好看example2

 

 

2、example2.vm

 

Html代码 
  1. <html >  
  2.     #set($a=10)  
  3.       
  4.     ------------  
  5.     <span>${a}-1</span>  
  6.       
  7.     输出为:10-1  
  8.     ------------  
  9. </html>  

  这个输出也可以理解,这是在html里,velocity不会把${a}-1当一个整体,好看example3

 

 

3、example3.vm

Html代码 
  1. <html >  
  2.     #set($a=10)  
  3.     #set($b=$a-1)  
  4.     ------------  
  5.     <span>$b</span>  
  6.       
  7.     这个输出应该是9吧,可输出为:$b  
  8.     
  9.     ------------  
  10. </html>  

     这我就不能淡定了,我不解,google,百度了一下,要想进行减法运算,必须在减号两边加空格。哦,不加空格velocity
 又把a-1当成一个变量了,看example4。

 

 

4、example4.vm

Html代码 
  1. <html >  
  2.     #set($a=10)  
  3.     #set($b=$a - 1)  
  4.     ------------  
  5.     <span>$b</span>  
  6.      
  7.     ------------  
  8. </html>  

  这个输出结果为9,哦原来如此,可是看example5。

 

5、example5.vm

 

 

Html代码 
  1. <html >  
  2.     #set($a=3)  
  3.     #set($s=["中国","日本","美国"])  
  4.     ------------  
  5.     我要得到s数值里的第三个元素,我是这样写滴  
  6.     <span>$s.get($a - 1)</span>  
  7.     ------------  
  8. </html>  

     我期待输出结果是"美国",可是velocity后台出异常了,我蛋疼了,看example6。

 

 

6、example6.vm

 

Html代码 
  1. <html >  
  2.     ##令人蛋疼的velocity减法运算  
  3.     #set($a=3)  
  4.     #set($s=["中国","日本","美国"])  
  5.     ------------  
  6.     我想到了example4,我这样写  
  7.     #set($b=$a - 1)  
  8.       
  9.     <span>$s.get($b)</span>  
  10.     输出为:"美国"  
  11.      
  12.     ------------  
  13. </html>  

     原来在velocity里变量可以是字符(a、b...)、数值(1、2..)、下划线(_)、中划线(-),
    但example5里那种写法get($a - 1),为什么报错,还在郁闷中。 我估计是不能传递吧?
 
    freemarker要比veloctiy确实强大了很多,在freemarker里面这样写就行了

Html代码 
  1. <#assign d=4>  
  2.  ${d-1}  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值