1. 程式人生 > >在velocity中如果需要進行計算

在velocity中如果需要進行計算

最近專案一直用veloctiy作為前端模板,velocity還算簡單易學,但是今天在用到減法運算是我蛋疼了。看例子:

1、example1.vm

Html程式碼 
  1. <html >  
  2.     #set($a=10)  
  3.     <span>$a-1</span>  
  4.     ------------  
  5.     輸出為:$a-1  
  6.     ------------  
  7. </html>  

   這個輸出還可以理解,velocity把a-1當做一個變數,所有沒有取到值,好看example2

2、example2.vm

Html程式碼 
  1. <
    html >  
  2.     #set($a=10)  
  3.     ------------  
  4.     <span>${a}-1</span>  
  5.     輸出為:10-1  
  6.     ------------  
  7. </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.     這個輸出應該是9吧,可輸出為:$b  
  7.     ------------  
  8. </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. </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.     <span>$s.get($b)</span>  
  9.     輸出為:"美國"  
  10.     ------------  
  11. </html>  

     原來在velocity裡變數可以是字元(a、b...)、數值(1、2..)、下劃線(_)、中劃線(-),
    但example5裡那種寫法get($a - 1),為什麼報錯,還在鬱悶中。 我估計是不能傳遞吧?
 
    freemarker要比veloctiy確實強大了很多,在freemarker裡面這樣寫就行了

Html程式碼 
  1. <#assign d=4>  
  2.  ${d-1}