让人蛋疼的velocity减法运算

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

1、example1.vm

 

<html >
    #set($a=10)
    <span>$a-1</span>
    ------------
    
    输出为:$a-1

    ------------
</html>

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

 

 

2、example2.vm

 

<html >
    #set($a=10)
    
    ------------
    <span>${a}-1</span>
    
    输出为:10-1
    ------------
</html>

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

 

 

3、example3.vm

<html >
    #set($a=10)
    #set($b=$a-1)
    ------------
    <span>$b</span>
    
    这个输出应该是9吧,可输出为:$b
  
    ------------
</html>

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

 

 

4、example4.vm

<html >
    #set($a=10)
    #set($b=$a - 1)
    ------------
    <span>$b</span>
   
    ------------
</html>

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

 

5、example5.vm

 

 

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

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

 

 

6、example6.vm

 

<html >
    ##令人蛋疼的velocity减法运算
    #set($a=3)
    #set($s=["中国","日本","美国"])
    ------------
    我想到了example4,我这样写
    #set($b=$a - 1)
    
    <span>$s.get($b)</span>
	输出为:"美国"
   
    ------------
</html>

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

    <#assign d=4>
     ${d-1}
 

 

 

你可能感兴趣的:(Java综合)