亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Velocity-初體驗

系統 2730 0

Velocity是什么

Velocity是一個基于java的模板引擎,類似與Freemarker。

為啥要用模板引擎

  • 模板引擎的速度要比jsp快,因為JSP需要編譯成servlet。
  • 將數據(Date)和模板(View)分離,讓不同的角色只關注自己的部分。

Velocity和Freemarker的比較

  • 功能上:FreeMarker的功能比Velocity多,是Velocity的超集。
  • 使用上:Velocity更加簡單和輕量級。

Velocity Template Language (VTL)

基本原則 :使用$字符開始的用于得到什么;使用#字符開始的用于作些什么。如下
a) 變量:#set( $foo = "gibbous" ) $moon = $foo
b) 屬性:$customer.Address
c) 方法:$customer.getAddress()
注意感嘆號!:用來強制把不存在的變量顯示為空白,所以強烈建議加上!,如$!message。在Freemarker里也建議這樣。
其他的在使用中可以參考文檔 Velocity學習指南.doc 。

Velocity的工作原理

三步了解Velocity的大致原理。

?
              import java.io.StringWriter; 
import org.apache.velocity.VelocityContext; 
import org.apache.velocity.Template; 
import org.apache.velocity.app.Velocity; 
import org.apache.velocity.exception.ResourceNotFoundException; 
import org.apache.velocity.exception.ParseErrorException; 
import org.apache.velocity.exception.MethodInvocationException; 
  
Velocity.init(); 
//1:構建一個上下文,用來存放數據(date)。 
VelocityContext context = new VelocityContext(); 
context.put( "name", new String("Velocity") ); 
Template template = null; 
try
{ 
   //2:讀取模板(View) 
   template = Velocity.getTemplate("mytemplate.vm"); 
} 
catch( ResourceNotFoundException rnfe ) 
{ 
   // couldn't find the template 
} 
catch( ParseErrorException pee ) 
{ 
  // syntax error: problem parsing the template 
} 
catch( MethodInvocationException mie ) 
{ 
  // something invoked in the template 
  // threw an exception 
} 
catch( Exception e ) 
{} 
  
StringWriter sw = new StringWriter(); 
//3:組合(control)數據和模板,最后寫到sw里,sw即最終數據。 
template.merge( context, sw ); 


            
??

我覺得Velocity是由上至下逐行掃描模板,當掃描到占位符(如$和#)的時候,通過JAVA的反射機制(或者cglib直接生成字節碼)調用JAVA的屬性和方法,生成最終數據。

學習資料

官方網址: http://velocity.apache.org/engine/releases/velocity-1.7/

Velocity-初體驗


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 色视频在线观看视频 | 欧美 日本 国产 | 国产一区二区三区欧美 | 最近中文字幕免费版在线3 最近中文字幕无吗高清视频 | 中文字幕日本一区波多野不卡 | 成人夜夜 | 亚洲精品高清在线一区二区三区 | 七七七久久久久人综合 | 日韩欧美高清视频 | 久久免费香蕉视频 | 曰本性l交片视频视频 | 天天舔天天干 | 国产极品粉嫩福利在线观看 | 国产偷视频 | 四虎精品免费久久 | 天天干干干干 | 免费羞羞网站 | 伊人久久影院 | 337p色噜噜人体大胆欧美 | 国产精品视频在线播放 | 一区二区三区四区 | 亚洲午夜一区二区三区 | 香蕉国产精品 | 天天爽夜夜爽精品视频一 | 国产亚洲欧美日韩在线看片 | 99热精品6 | 黄色a∨ | 国产欧美中文字幕 | 亚洲国产成人久久综合碰 | 亚洲欧美日韩中文综合在线不卡 | 一男一女一级毛片 | 国产欧美一区二区三区视频 | 欧美成人亚洲欧美成人 | 91福利精品老师国产自产在线 | 欧美日本在线视频 | 国产自产在线 | 大咪咪在线 | 九一视频在线 | 91专区在线观看 | 99这里只有精品 | 有色视频在线观看免费高清 |