让人蛋疼的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}?
?
?
非常的有意思