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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Velocity模板概念及简单使用

發布時間:2023/12/31 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Velocity模板概念及简单使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

一. ?概念(譯自官網)

Velocity是一個基于Java的模板引擎,它允許任何人使用這樣一個簡單而強大的模板語言引用Java代碼中定義的對象。

當Velocity應用于Web開發時,Web designers和Java工程師在開發網站時能夠依據MVC(Model-View-Controller)模型同時進行工作,這意味著Web頁面設計師僅僅只需要專注于設計出美觀的頁面,而Java工程師也可以只專注于寫出一流高效的代碼。Velocity將Java代碼從web頁面中分離出來,使網站在其生命周期內更易維護,提供了一個相比JSP或PHP更為可行的方案。

Velocity的功能遠超過了web的范圍;它可以在模板中生成SQL,PostScript,XML。它既可以作為生成源代碼和報告的實用程序使用,也可以作為其它系統的集成組件使用。例如,Velocity為各種web框架提供模板,使它們能夠使用視圖引擎從而依據真正的MVC模型開發web應用程序。

二 .??Velocity語法

單行注釋

## this is a comment### comments.....

多行注釋

#*onetwo #*

函數宏定義。使用Velocity定義函數給其他模板調用

#macro(函數名 參數1 參數2)

#macro(macroName arg1 arg2 …) ... #end

函數中的內容會在被調用的地方顯示

#macro( tablerows $color $somelist )#foreach( $something in $somelist )<tr><td bgcolor=$color>$something</td></tr>#end #end#set( $greatlakes = ["Superior","Michigan","Huron","Erie","Ontario"] ) #set( $color = "blue" ) <table>#tablerows( $color $greatlakes ) </table>

3. 實例,在Maven項目中使用Velocity

1. 首先在pom文件中添加依賴

<dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-tools</artifactId><version>2.0</version><exclusions><exclusion><artifactId>servlet-api</artifactId><groupId>javax.servlet</groupId></exclusion></exclusions> </dependency>

2. 然后在WEB-INF目錄下新建vm文件,這里有兩種方式,一是直接在WEB-INF根目錄下建立,這是velocity模板默認加載位置,二是在WEB-INF目錄下自己再建一個模板目錄,如果這樣做的話就需要自己在velocity.properties文件中設置路徑

3. 新建一個resources目錄,配置velocity.properties文件和velocity-tools.xml文件

velocity.properties,里面可設置一些模板配置信息,如字符編碼方式,模板加載路徑等,也可不配置此文件

input.encoding=UTF-8 output.encoding=UTF-8 #resource.loader=webapp webapp.resource.loader.class=org.apache.velocity.tools.view.WebappResourceLoader #relative to the web context, has the same parent directory with WEB-INF #that is, vm and WEB-INF are sibling folders webapp.resource.loader.path=/WEB-INF/templates/ runtime.introspector.uberspect=org.apache.velocity.util.introspection.SecureUberspector # 允許在常規模板中定義宏 velocimacro.permissions.allow.inline.to.replace.global=true

velocity-tools.xml,里面包含了對已預定義好的類的映射,配置好后在模板中就可以通過key直接調用類中的方法

<?xml version="1.0" encoding="utf-8"?> <tools><toolbox scope="request"><tool key="userList" class="com.yuchen.space.action.UserListAction"/></toolbox> </tools>

4. 配置web.xml,這里因為只輸出一個簡單的頁面,所以就直接使用了工具包里的VelocityLayoutServlet,也可以自己繼承這個類進行開發,另外要將velocity.properties和velocity-tools.xml配置進去

<web-app><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>Velocity</servlet-name><servlet-class>org.apache.velocity.tools.view.VelocityLayoutServlet</servlet-class><init-param><param-name>org.apache.velocity.toolbox</param-name><param-value>velocity-tools.xml</param-value></init-param><init-param><param-name>org.apache.velocity.properties</param-name><param-value>velocity.properties</param-value></init-param></servlet><servlet-mapping><servlet-name>Velocity</servlet-name><url-pattern>*.vm</url-pattern></servlet-mapping><welcome-file-list><welcome-file>userList.vm</welcome-file></welcome-file-list> </web-app>

在tomcat服務器上運行就可以輸出開始編寫的vm頁面了

4. ?參考文章

官網:http://velocity.apache.org/

Velocity的宏定義實例:https://www.oschina.net/code/snippet_12_189

轉載于:https://my.oschina.net/u/4057396/blog/3021628

總結

以上是生活随笔為你收集整理的Velocity模板概念及简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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