使用NVelocity生成內容的幾種方式

2021-09-06 16:32:25 字數 3476 閱讀 2550

使用nvelocity也有幾個年頭了,主要是在我的**生成工具database2sharp上使用來生成相關**的,不過nvelocity是乙個非常不錯的模板引擎,可以用來生成檔案、頁面等相關處理,非常高效和方便。

它原先是在** 上維護,不過從0.41後,該**就不再進行nvelocity更新了,現在可以在**上獲得最新版本的更新,接著版本的更新操作,我們把nvelocity的幾種生成檔案的操作介紹一下,以便大家進行更深入的了解。

強大的模板引擎開源軟體nvelocity

database2sharp版本更新之自定義模板生成

使用nvelocity0.5實現伺服器端頁面自動生成

從上面的圖示,我們可以看到,nvelocity的模板化生成包含了3種方式,一種是從檔案到檔案或者字串,一種是從字串到字串,他們各自的處理方式有所不同,但是都能正確解析裡面的內容。

為了更好利用nvelocity的特性,我們對它進行乙個初步的輔助類封裝。

///

///基於nvelocity的模板檔案生成輔助類

/// public

class

nvelocityhelper

return

this

; }

................

上面的addkeyvalue方法,主要用來為模板引擎新增一些需要繫結在頁面上的變數物件,這樣頁面變數引數的內容就能正確解析出來了。

為了使用nvelocity的各種特性,我們需要在輔助類裡面構造模板的相關資訊,設定相關引數。

///

///初始化模板引擎

/// protected

virtual

void

inittemplateengine()

catch

(resourcenotfoundexception re)

catch

(parseerrorexception pee)

}

在生成內容之前,需要把相關的物件屬性繫結到模板引擎的上下文物件裡面。

///

///初始化上下文的內容

/// private

void

initcontext()

}

1)根據模板檔案構造對應的檔案內容

///

///根據模板建立輸出的檔案,並返回生成的檔案路徑

/// public

virtual

string

executefile()

"class file output path:", filename));

initcontext();

using (streamwriter writer = new streamwriter(filename, false

))

}return

filename;

}

2)根據模板檔案構造字串內容

///

///根據模板輸出字串內容

/// ///

///public

string

executestring()

3)根據字串內容構造字串輸出

///

///合併字串的內容

/// ///

public

string executemergestring(string

inputstring)

上面幾種操作模板輸出的方式,其呼叫**如下所示。

private

void btngeneratefile_click(object

sender, eventargs e)

}

private

void btngenerate_click(object

sender, eventargs e)

private

void btnmergestring_click(object

sender, eventargs e)

\r\n

" + "

$content\r\n

" + "

$digest\r\n

" + "

$author\r\n

" + "

$keyword\r\n

" + "

$datetime\r\n");

nvelocityhelper adapter = new

nvelocityhelper();

adapter.addkeyvalue(

"title

", "標題"

). addkeyvalue(

"content

", "內容"

). addkeyvalue(

"digest

", "摘要"

). addkeyvalue(

"author

", "作者"

). addkeyvalue(

"keyword

", "").

addkeyvalue(

"datetime

", datetime.now);

this.txtcode.text =adapter.executemergestring(builder.tostring());

}

上面的幾種操作模板內容的方式,能夠在絕大多數情況下滿足我們的應用要求,如可以在**生成工具裡面,定義一些自定義的內容模板,然後結合資料庫的元資料資訊,實現豐富邏輯的**生成操作。

或者根據資料資訊生成具體的頁面,用於套打操作,如下是winform裡面的套打處理。

使用NVelocity 翻譯

原文參見 有的地方並不是全文對照翻譯,只是意譯 這是乙個非常基本的nvelocity的使用說明。nvelocity可以把模板和資料動態合併 不光是monorail的web頁面可以使用,其他諸如傳送郵件等也可以使用 為了演示簡單,下面的例子我們使用乙個郵件的模板 第一步 生成velocityengin...

NVelocity標籤使用詳解

使用步驟。a 建立velocity 引擎 velocityengine 並設定屬性.b velocitycontext 上下文物件建立於設定.c 使用velocityengine velocity 引擎 建立模板 template d 合併模板和上下文物件 輸出.演示。先引入nvelocity.dl...

NVelocity標籤使用詳解

本文目錄 二 使用 三 演示。二 使用步驟。a 建立velocity 引擎 velocityengine 並設定屬性.b velocitycontext 上下文物件建立於設定.c 使用velocityengine velocity 引擎 建立模板 template d 合併模板和上下文物件 輸出.三...