溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

.Net 使用NVelocity模板

發(fā)布時(shí)間:2020-07-25 12:32:34 來(lái)源:網(wǎng)絡(luò) 閱讀:1533 作者:瑜沐沉香 欄目:編程語(yǔ)言

1、NVelocity是什么?

答:NVelocity是一個(gè)基于.NET的模板引擎(template engine).它允許任何人僅僅簡(jiǎn)單的使用模板語(yǔ)言(template language)來(lái)引用由.NET代碼定義的對(duì)象。


2、NVelocity有什么作用(有什么裨益)?

答:當(dāng)NVelocity 應(yīng)用于Web開(kāi)發(fā)時(shí),界面設(shè)計(jì)人員和.NET程序開(kāi)發(fā)人員同步開(kāi)發(fā)一個(gè)遵守MVC架構(gòu)的Web站點(diǎn),也就是說(shuō)頁(yè)面設(shè)計(jì)人員可以只關(guān)注頁(yè)面的顯示效果,而 由.NET 開(kāi)發(fā)人員關(guān)注業(yè)務(wù)邏輯編碼。NVelocity將.NET 代碼從Web界面中分離出來(lái),這樣為Web站點(diǎn)的長(zhǎng)期維護(hù)提供了方便,同時(shí)也為我們?cè)赼spx之外又提供了一種可選方案。

NVelocity的能力遠(yuǎn)不止Web站點(diǎn)開(kāi)發(fā)這個(gè)領(lǐng)域,例如:它可以從模板(template)產(chǎn)生SQL和PostScript、XML,它也可以被當(dāng)作一個(gè)獨(dú)立的工具來(lái)產(chǎn)生源代碼和報(bào)告,或者作為其他系統(tǒng)的集成組件使用。

nVelocity也可以為很多web開(kāi)發(fā)架構(gòu)提供模板服務(wù)(template service)。我們的系統(tǒng)就提供一個(gè)模板服務(wù)的方式允許一個(gè)web應(yīng)用以一個(gè)真正的MVC模型進(jìn)行開(kāi)發(fā)。

3、我們?nèi)绾问褂肗Velocity?




.Net之NVelocity的三種用法 【轉(zhuǎn)】


using NVelocity;
using NVelocity.App;
using NVelocity.Runtime;

VelocityEngine vltEngine = 
new VelocityEngine();
vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, 
"file");
vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, Server.MapPath(
"~/Template/"));
vltEngine.Init();

VelocityContext vltContext = 
new VelocityContext();
vltContext.Put(
"PageTitle""文件模板例子");
vltContext.Put(
"ListUsers", listUsers);

Template vltTemplate = vltEngine.GetTemplate(
"Default.htm");
System.IO.StringWriter vltWriter = 
new System.IO.StringWriter();
vltTemplate.Merge(vltContext, vltWriter);

Response.Write(vltWriter.GetStringBuilder().ToString());

 

 

 

 

NVelocity 使用資源文件模板例子

例子下載

using NVelocity;
using NVelocity.App;
using NVelocity.Runtime;

        IList<
string> listAssembly = new List<string>();
        
// 添加程序集名稱
        listAssembly.Add("LibTest");

        VelocityEngine vltEngine = 
new VelocityEngine();
        vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, 
"assembly");
        vltEngine.SetProperty(
"assembly.resource.loader.class""NVelocity.Runtime.Resource.Loader.AssemblyResourceLoader; NVelocity"); // 固定寫(xiě)法- -!
        vltEngine.SetProperty("assembly.resource.loader.assembly", listAssembly);
        vltEngine.Init();

        VelocityContext vltContext = 
new VelocityContext();
        vltContext.Put(
"PageTitle""資源模板例子");
        vltContext.Put(
"ListUsers", listUsers);

        Template vltTemplate = vltEngine.GetTemplate(
"LibTest.Resources.Default.htm");
        System.IO.StringWriter vltWriter = 
new System.IO.StringWriter();
        vltTemplate.Merge(vltContext, vltWriter);

        Response.Write(vltWriter.GetStringBuilder().ToString());

 

 

 

 

 

NVelocity 使用字符串模板例子

例子下載

using NVelocity;
using NVelocity.App;
using NVelocity.Runtime;

System.Text.StringBuilder builder = 
new System.Text.StringBuilder();
        builder.Append(
"#foreach(uinListUsers)"r"n" +
            
"#beforeall"r"n" +
            
"<table border=""0"" cellpadding=""10"" cellspacing=""10"">" +
            
"<tr><td>Name</td><td>Sex</td><td>City</td></tr>" +
            
"#each"r"n" +
            
"<tr>" +
            
"<td>$u.Name</td>" +
            
"<td>$u.Sex</td>" +
            
"<td>$u.City</td>" +
            
"</tr>" +
            
"#afterall"r"n" +
            
"</table>" +
            
"#nodata"r"n" +
            
"暫無(wú)用戶資料"r"n" +
            
"#end");

        VelocityEngine vltEngine = 
new VelocityEngine();
        vltEngine.Init();

        VelocityContext vltContext = 
new VelocityContext();
        vltContext.Put(
"PageTitle""字符串模板例子");
        vltContext.Put(
"ListUsers", listUsers);

        System.IO.StringWriter vltWriter = 
new System.IO.StringWriter();
        vltEngine.Evaluate(vltContext, vltWriter, 
null, builder.ToString());

        Response.Write(vltWriter.GetStringBuilder().ToString());


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI