在某些時候,處於重用的目的,我們會選擇將可以重用的部分內容剝離在單獨的模板檔案中,比如對於查詢頁面的**部分,因為現在很多的條件可能是通過彈出查詢框的方式來實現,而作為普通頁面的時候,他們會有更多的功能,所以部分重複,而又不合理整個重用。這部分內容又是需要在執行時解析的。除了重用的目的外,對於系統本身設計而言,你會發現其實這個設計變得更加的靈活和穩健,很多原先限制很死的實現,通過抽象,變得更加的模組化。
這個時候我們就需要借助於velocity的#parse來引用這個segment。
#parse
1.可以引入包含vtl的模板
2.任何模板檔案只能位於template_root目錄下
一般預設情況下,template_root就是專案的根目錄,舉個例子:
#parse("./***_seg.vm") 此處***_seg.vm可以包含velocity**。
它和#include的最大差別就是#include就是靜態包含,個人感覺這個意義不是特別大。
#include
1.可包含本地檔案(不包含vtl)
2.檔案內容不經過template engine處理
3.出於安全性的考慮,此檔案只能位於template_root目錄下
13 抽象類 抽象字段 抽象方法
抽象類在scala中很重要。spark中的rdd是抽象的,可以有很多具體實現的rdd。eg 運算元據庫的rdd,jdbc的rdd,hadoop的rdd 雖然scala中也有介面trait,但物件導向的面向介面程式設計中,絕大多數用的是抽象類。eg spark中的機器學習啊,圖計算啊,流處理啊,都有具...
C 抽象類 抽象屬性 抽象方法
抽象類往往用來表徵對問題領域進行分析 設計中得出的抽象概念,是對一系列看上去不同,但是本質上相同的具體概念的抽象。下面我們以水果為例,首先定義抽象類fruit,抽象類中有公共屬性vendor,抽象屬性price和抽象方法growinarea,1 public abstract class fruit...
抽象類 抽象方法
抽象類 1.類名前有abstruct修飾。有構造方法。在建立抽象類的子類的時候,還是會先建立抽象父類的物件的。2.抽象類不能例項化是指不能手動的new。抽象方法 1.抽象方法 沒有方法體且需要用abstruct關鍵字修飾 作用 需要改變的地方都應該是抽象。抽象方法只能存在於抽象類或介面中。2.有抽象...