.Net 使用NVelocity模板

发布时间:2020-07-25 12:32:34 作者:瑜沐沉香
来源:网络 阅读:1538

1、NVelocity是什么?

答:NVelocity是一个基于.NET的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象。


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

答:当NVelocity 应用于Web开发时,界面设计人员和.NET程序开发人员同步开发一个遵守MVC架构的Web站点,也就是说页面设计人员可以只关注页面的显示效果,而 由.NET 开发人员关注业务逻辑编码。NVelocity将.NET 代码从Web界面中分离出来,这样为Web站点的长期维护提供了方便,同时也为我们在aspx之外又提供了一种可选方案。

NVelocity的能力远不止Web站点开发这个领域,例如:它可以从模板(template)产生SQL和PostScript、XML,它也可以被当作一个独立的工具来产生源代码和报告,或者作为其他系统的集成组件使用。

nVelocity也可以为很多web开发架构提供模板服务(template service)。我们的系统就提供一个模板服务的方式允许一个web应用以一个真正的MVC模型进行开发。

3、我们如何使用NVelocity?




.Net之NVelocity的三种用法 【转】


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"); // 固定写法- -!
        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" +
            
"暂无用户资料"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());


推荐阅读:
  1. ASP.NET MVC 5 - 视图
  2. 什么是ZKEACMS for .Net Core

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

service 界面设计 程序开发

上一篇:k8s自主式pod之应用策略规则

下一篇:如何设计实时数据平台(设计篇)

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》