日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Velocity模板语言VTL

發布時間:2023/12/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Velocity模板语言VTL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

Velocity是Apache軟件組織提供的一想開源源碼項目,可前往Apache Velocity Project下載。它是基于Java的模板引擎,主要用于簡化Web應用開發。網頁設計者可以通過Velocity模板語言定義模板,開發者編寫程序代碼設置上下文,Velocity引擎負責結合模板和上下文,以此生成動態網頁。很明顯,Velocity可將Java代碼從Web頁面中分離出來,是Web站點在長時間運行后仍然有很好的維護性。視圖VTL模板語言不用經過JSP編譯器的編譯,VTL模板的解析是由Velocity引擎來完成的。特別需要注意的是,若擴展VelocityServlet,將被提示the type VelocityServlet is deprecated,如下圖所示:

。API文檔中寫道,This servlet has been replaced by VelocityViewServlet, available from the Velocity-Tools sub-project. ?VelocityViewServlet provides support for quick, clean MVC web development. VelocityServlet will be removed in a future version of Velocity.于是,我去擴展VelocityViewServlet,引用的時候,發現

,頓時感覺Velocity API文檔在逗我。我進入VelocityViewServlet源碼中發現,原來注釋中有告訴我們,已經被移動到org.apache.velocity.tools.view.VelocityViewServlet中,部分源碼如下圖所示:

Velocity實例1

???新建文件myvelocity.vm,具體內容如下:?

##author:?DJM #set($jianming="king") Welcome?$djm?to?Velocity! Today?is?$date. djm?is?$jianming.

?? ? ?創建簡單的類MyVelocity,代碼如下:?

package?com.jianming;import?java.io.StringWriter; import?java.util.Date;import?org.apache.velocity.Template; import?org.apache.velocity.VelocityContext; import?org.apache.velocity.app.VelocityEngine;public?class?MyVelocity?{public?static?void?main(String[]?args)?{//?初始化并取得Velocity引擎VelocityEngine?ve?=?new?VelocityEngine();ve.init();//?取得velocity的模版Template?template?=?ve.getTemplate("src/com/jianming/myvelocity.vm");//?取得velocity的上下文contextVelocityContext?context?=?new?VelocityContext();context.put("djm",?"DengJianming");context.put("date",?new?Date());StringWriter?sw?=?new?StringWriter();template.merge(context,?sw);System.out.println(sw.toString());} }

運行之后的結果如下圖所示:

????????

Velocity實例2

??? 在WEB-INF目錄下創建屬性文件velocity.properties和vm目錄,并在vm目錄中創建模板文件myvelocity.vm和。

?? velocity.properties文件的內容為:

resource.loader?=?webapp?? webapp.resource.loader.class?=?org.apache.velocity.tools.view.servlet.WebappLoader webapp.resource.loader.path=/WEB-INF/vm/?? input.encoding=utf-8 output.encoding=utf-8

?? myvelocity.vm文件的內容為:

##author:?DJM <html><head><title>$djm</title></head><body?bgcolor="#ffffff"><h2>$djm</h2><hr>#set($jianming="king")Welcome?$djm?to?Velocity!<hr>Today?is?<font?color="#E10300">$date.</font><hr>djm?is?$jianming.<hr></body> </html>

????

?? 編寫MyVelocity類,源碼如下:

package?com.threeeyes.djm;import?java.util.Date;import?javax.servlet.http.HttpServletRequest; import?javax.servlet.http.HttpServletResponse;import?org.apache.velocity.Template; import?org.apache.velocity.context.Context; import?org.apache.velocity.tools.view.VelocityViewServlet;public?class?MyVelocity?extends?VelocityViewServlet?{private?static?final?long?serialVersionUID?=?8439995475770991915L;@Overrideprotected?Template?handleRequest(HttpServletRequest?request,HttpServletResponse?response,?Context?ctx)?{ctx.put("djm",?"ZhaoXue");ctx.put("date",?new?Date());return?getTemplate("myvelocity.vm");}@Overrideprotected?void?setContentType(HttpServletRequest?request,HttpServletResponse?response)?{response.setContentType("text/html;?charset=utf-8");}}

? 在web.xml文件中添加如下配置:

<servlet><servlet-name>myVelocity</servlet-name><servlet-class>com.threeeyes.djm.MyVelocity</servlet-class><init-param><param-name>org.apache.velocity.properties</param-name><param-value>/WEB-INF/velocity.properties</param-value></init-param> </servlet> <servlet-mapping><servlet-name>myVelocity</servlet-name><url-pattern>/myVelocity</url-pattern> </servlet-mapping>

部署到tomcat之后,運行程序顯示結果如下:


Velocity注釋

????????VTL中,單行注釋采用"##",對于多行注釋采用"#*"和"*#"符號。? ? ??


Velocity指令

????????#set指令

????????#set指令用來為引用變量或者引用屬性賦值,比如:????

????????#set($djm="dengjianming")

????? ? 賦值表達式的左邊必須是一個變量引用或者屬性引用,右邊可以是變量引用($djm)、字符串("zhaoxue")、屬性引用($MyWife.name)、方法引用($djm.merge($condition))、數字(200)、數組({"deng", "jian", "ming"})、簡單的算術表達式。

????????字面字符串

?????????當使用#set指令時,在雙引號中的字面字符串將被解析。在單引號中的字面字符串將不被解析。


????????#if指令

????? ? 當#if指令的IF條件為真時,Velocity將輸出#if代碼塊包含的文本,比如,

?????????#if($flag)

????????????????<h1>少說話,多生娃</h1>

???????? #end

????????當$flag是一個邏輯類型為true的變量或者$flag值為非空的情況下,if才為真。當$flag是一個邏輯類型為flase的變量或者$flag的值為null,if才為假。

????????在#if語句后可包含#elseif和#else項。

?

????????? ?

????????

????????

轉載于:https://my.oschina.net/dengjianming/blog/404446

總結

以上是生活随笔為你收集整理的Velocity模板语言VTL的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久久久久一区 | 91精品国产色综合久久不8 | 日韩一级一区 | 精品久久久久亚洲 | 91n在线观看 | 国产网站黄 | av中文字幕在线播放 | 一级黄色a视频 | 成人性生交大片免费看 | 亚洲视频你懂的 | 国产精品免费视频一区 | 波多野结衣在线播放视频 | 亚洲国产精品成人综合色在线婷婷 | 成人涩涩网 | 久久a毛片 | 免费超碰在线观看 | 岛国精品在线播放 | 婷婷伊人综合中文字幕 | 男人的天堂一级片 | 五月婷婷综 | 欧美六区| aaaaa级少妇高潮大片免费看 | 激情综合区 | 午夜精品久久久久久久99热黄桃 | 成人在线观看一区二区 | 三上悠亚人妻中文字幕在线 | 五月天婷婷在线观看 | jizz日本免费 | 在线视频亚洲色图 | 日韩免费高清一区二区 | 91精品播放 | 日出白浆视频 | 逼逼av网站| 中文字幕在线导航 | 在线看片| 国精产品一区二区三区 | 男插女在线观看 | 中文日本在线 | 成人午夜视频在线免费观看 | 亚欧美一区二区三区 | 大屁股一区二区三区 | 一区免费视频 | 国产污视频在线播放 | 欧美巨乳在线观看 | 日本高清视频www夜色资源 | 免费在线观看污网站 | 精品人妻一区二区三区在线视频 | 奴色虐av一区二区三区 | 欧美高清在线一区 | 天堂网色 | 男人的天堂av网 | 天天干狠狠插 | 波多野结衣绝顶大高潮 | 69国产在线| 国产一区在线观看免费 | 亚洲社区在线观看 | 日本少妇激情 | 亚洲一区二区精品在线观看 | 少妇裸体挤奶汁奶水视频 | 日韩免费在线视频观看 | 国产久精品 | 少妇偷人精品无码人妻 | 欧美国产一级 | 99爱在线| 亚洲熟妇无码av | 天堂一区在线 | 2017日日夜夜 | 国产亚洲精品久久久久婷婷瑜伽 | 黄色一级在线 | 亚洲成人av影片 | 成人黄色在线观看视频 | 欧美视频福利 | 91精品国产欧美一区二区成人 | 欧美综合网站 | 国产精品第十页 | 国产人免费人成免费视频 | 亚洲欧美激情精品一区二区 | 最好看的中文字幕国语电影mv | 久久久九九| 国产精品第十页 | 在线一区二区三区四区五区 | 成人综合激情 | 国产精品国产精品国产专区不片 | 亚洲视频一区在线 | 欧美亚洲影院 | 在线观看黄色免费视频 | 色老板精品凹凸在线视频观看 | 久久久二区 | 95视频在线 | 中文国语毛片高清视频 | 日美女逼逼 | 中文字幕影片免费在线观看 | 成人久色| 中文理论片 | 狠狠干天天干 | 九九夜| caoporm超碰 | 香蕉久久一区二区三区 | 手机版av|