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=truevelocity-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模板概念及简单使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 钉钉ppt放映显示备注_[备注] 钉钉使
- 下一篇: jemter web端录制