在velocity中如果需要進行計算
阿新 • • 發佈:2019-02-09
最近專案一直用veloctiy作為前端模板,velocity還算簡單易學,但是今天在用到減法運算是我蛋疼了。看例子:
1、example1.vm
Html程式碼- <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程式碼- <html >
- #set($a=10)
- #set($b=$a-1)
- ------------
-
<span
- 這個輸出應該是9吧,可輸出為:$b
- ------------
- </html>
這我就不能淡定了,我不解,google,百度了一下,要想進行減法運算,必須在減號兩邊加空格。哦,不加空格velocity
又把a-1當成一個變量了,看example4。
4、example4.vm
Html程式碼- <html >
- #set($a=10)
- #set($b=$a - 1)
- ------------
-
<span>$b</span
- ------------
- </html>
這個輸出結果為9,哦原來如此,可是看example5。
5、example5.vm
Html程式碼- <html >
- #set($a=3)
- #set($s=["中國","日本","美國"])
- ------------
- 我要得到s數值裡的第三個元素,我是這樣寫滴
- <span>$s.get($a - 1)</span>
- ------------
- </html>
我期待輸出結果是"美國",可是velocity後臺出異常了,我蛋疼了,看example6。
6、example6.vm
Html程式碼- <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}