摘要:的簡介是一個基于的模板引擎。使用,也可以寫成。所以,應該使用規(guī)范的格式書寫現(xiàn)在知道變量是而不是。如當頁面中包含,如果對象有值,將顯示的值,如果不存在對象同,則在頁面中將顯示字符。
velocity的簡介
Velocity是一個基于java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象,這樣的話其實在前后端分離而言又是一個較為合理的可選方案,
Velocity也可以配合其他的語言來完成使用,Velocity.js就是不錯的選擇,這樣的話可以依靠nodejs和瀏覽器環(huán)境來實現(xiàn)模版的功能。
什么是Velocity模版?
Velocity模版可以是任意的文本文件,只要里面包含專門的模板語言(VTL)標記,就可以被Velocity模板引擎解析;
Velocity模版的工作機制:
Velocity可以通過獲取Java對象的函數(shù)返回值、屬性值,用于替換模板文件中的VTL變量標記,從而生成新的文件,模板文件的擴展名可以是".vm"、".htm"、".html"、".asp"、".sql",等等任語法簡介
大部分的模版引擎都是有自己的書寫方式,不過{}這個大括號基本都是他們的通用符號,這里介紹語法的順序是:
變量定義、使用
控制語句 if for之類
指令
宏
變量變量是任何語言都不可缺少的;
變量定義和使用變量的定義和賦值基本方法:#set (<$變量名> = <"變量值">)
#set ($name = "Sankhya") ##字符串
#set ($age = 30) ##數(shù)字
#set ($list = ["Sankara", ${name}, "Shankara"]) ##數(shù)組
#set ($dict = ["A":"va", "B":234, "C":${value}]) ##HashTable
在雙引號之間的字符串將被Velocity引擎解釋和重新解釋;在velocity中使用$2.5這樣的貨幣標識是沒有問題得的,因為velocity中的變量總是以一個大寫或者小寫的字母開始的。
使用:
${name} ,也可以寫成:$name。提倡用前面的寫法。
例如:你希望通過一個變量$vice來動態(tài)的組織一個字符串。
Jack is a $vicemaniac.
本來變量是$vice現(xiàn)在卻變成了$vicemaniac,這樣Veloctiy就不知道您到底要什么了。所以,應該使用規(guī)范的格式書寫 : Jack is a ${vice}maniac
現(xiàn)在Velocity知道變量是$vice而不是$vicemaniac。
例如:
#set ($desc = "${name} is ${age} years old;")
執(zhí)行這條語句之后,輸出$desc的值將是:Sankhya is 30 years old;
同時還需要注意:
(1).Velocity模版中的變量是弱類型的;等號"="右邊的值可以是引用、字符串、數(shù)字、Array、Vector、HashTable或表達式;
(2).如果等號"="右邊的值是null,則左邊的變量不會被賦值,且仍然保留以前的值;
(3).模板中沒有被定義的變量將被認為是一個字符串;
(4).模板引擎不會將reference解釋為對象的實例變量;如:$foo.Name將被解釋為對象Foo的getName()方法,而不是Foo對象的Name實例變量;$foo.getBar()就等價于$foo.Bar;
注釋:
單行注釋使用“##”開頭就可: ## 這好似注釋
多行注釋 #* 多行注釋 *#
文檔注釋: #** 文檔編寫 **#
控制語句 if條件控制語句#if () ##statement segment #elseif ( ) ##statement segment #else ##statement segment #end
作為condition,Velocity引擎也支持關系運算符(>、>=、<、<=、!=)和邏輯運算符(&&->AND、||->OR、!->NOT);
"!"用來強制把不存在的變量顯示為空白。
如當頁面中包含$msg,如果msg對象有值,將顯示msg的值,如果不存在msg對象同,則在頁面中將顯示$msg字符。這是我們不希望的,為了把不存 在的變量或變量值為null的對象顯示為空白,則只需要在變量名前加一個“!”號即可。
如:$!msg
#foreach ($element in $list) ##your statement $velocityCount #end指令
#parse和#include指令:
這兩者都是導入本地模板文件;
#parse指令只能導入一個文件,同時,被導入的文件的內容將會被Velocity模板引擎解析,意思就是把被導入的文件的內容copy到當前文件中;該指令也可以被遞歸調用;
#include指令可以導入一個或多個文件,當導入多個文件時,可以用逗號分隔;而且,被導入的文件的內容不會被Velocity模版引擎解析;
例如:
#include ("one.gif", "two.txt", "three.htm") ##不會被模版引擎解釋;
#include (${file1}, ${file2}, ${file3}) ##不會被模版引擎解釋;
#parse ("server.conf") ##會被模版引擎解釋;
#stop停止執(zhí)行模板引擎并返回,把它應用于debug是很有幫助的;
Velocity中的轉義字符也是使用符號"";這就意味著執(zhí)行""將會輸出"",而執(zhí)行"$"將會輸出"$",執(zhí)行"#"會輸出"#";
參考:http://bdxnote.blog.163.com/b...
http://www.blogjava.net/alexw...
http://www.cnblogs.com/likwo/...
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/83031.html
摘要:的簡介是一個基于的模板引擎。使用,也可以寫成。所以,應該使用規(guī)范的格式書寫現(xiàn)在知道變量是而不是。如當頁面中包含,如果對象有值,將顯示的值,如果不存在對象同,則在頁面中將顯示字符。 velocity的簡介 Velocity是一個基于java的模板引擎(template engine)。它允許任何人僅僅簡單的使用模板語言(template language)來引用由java代碼定義的對象,...
摘要:包括以下工具在過渡和動畫中自動應用可以配合第三方動畫庫,如在過渡鉤子函數(shù)中使用直接操作可以配合使用第三方動畫庫,如在這里,我們只會講到進入離開和列表的過渡。不僅可以進入和離開動畫,還可以改變定位。 概述 Vue在插入、更新或則移除DOM時,提供多種不同方式的應用過渡效果。包括以下工具: *在CSS過渡和動畫中自動應用class *可以配合第三方CSS動畫庫,如Animate.css *...
Python Pandas的主要左右是解決大量的數(shù)據(jù),快速的對數(shù)據(jù)去進行批量的處理,大大提高工作的效率。那么,里面的loc和iloc函數(shù),具體是怎么進行使用呢?怎么知道每個函數(shù)的基本用法呢?下面小編就給大家詳細的解答下。 1 loc和iloc的含義 loc表示location的意思;iloc中的loc意思相同,前面的i表示integer,所以它只接受整數(shù)作為參數(shù)。 2用法 import...
我們知道在 Vue3 中有兩個非常常用的響應式 API:reactive 和 ref。這樣就可以變成我們想要追蹤的數(shù)據(jù)變成響應式。 知道嗎?在使用時一直被告知 ref 用于創(chuàng)建基礎類型的響應式,也可以創(chuàng)建引用類型的響應式。而對于引用類型,底層也是轉換為 reactive 來進行響應式處理。那既然這樣為撒還需要 reactive ,全部使用 ref 不就行了嗎? 雖然 ref 創(chuàng)建的響應式數(shù)...
閱讀 2365·2021-11-11 16:54
閱讀 2612·2021-09-26 09:47
閱讀 3987·2021-09-08 09:36
閱讀 2735·2021-07-25 21:37
閱讀 931·2019-08-30 15:54
閱讀 2543·2019-08-30 14:22
閱讀 3253·2019-08-30 13:57
閱讀 2583·2019-08-29 17:17