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($u in $ListUsers)\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());

NVelocity 在.Net的三种用法的更多相关文章

  1. using 的三种用法

    using 有哪三种用法? 1)引入命名空间. 2)给命名空间或者类型起别名. 3)划定作用域.自动释放资源,使用该方法的类型必须实现了 System.IDisposable接口,当对象脱离作用域之后 ...

  2. Js闭包常见三种用法

        Js闭包特性源于内部函数可以将外部函数的活动对象保存在自己的作用域链上,所以使内部函数的可以将外部函数的活动对象占为己有,可以在外部函数销毁时依然存有外部函数内的活动对象内容,这样做的好处是可 ...

  3. .NET(c#)new关键字的三种用法

    前几天去家公司面试,有一道这样的题:写出c#中new关键字的三种用法,思前想后挖空心思也只想出了两种用法,回来查了下msdn,还真是有第三种用法:用于在泛型声明中约束可能用作类型参数的参数的类型,这是 ...

  4. SQL、LINQ、Lambda 三种用法(转)

    SQL.LINQ.Lambda 三种用法颜色注释: SQL LinqToSql Lambda QA1. 查询Student表中的所有记录的Sname.Ssex和Class列.select sname, ...

  5. c# new关键字的三种用法

    三种用法如下: 在 C# 中,new 关键字可用作运算符.修饰符或约束. 1)new 运算符:用于创建对象和调用构造函数. 2)new 修饰符:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成 ...

  6. java中 this 的三种用法

    Java中this的三种用法 调用属性 (1)this可以调用本类中的任何成员变量 调用方法(可省略) (2)this调用本类中的成员方法(在main方法里面没有办法通过this调用) 调用构造方法 ...

  7. 子查询。ANY三种用法。ALL两种用法。HAVING中使用子查询。SELECT中使用子查询。

    子查询存在的意义是解决多表查询带来的性能问题. 子查询返回单行多列: ANY三种用法: ALL两种用法: HAVING中的子查询返回单行单列: SELECT中使用子查询:(了解就好,避免使用这种方法! ...

  8. java中 this 关键字的三种用法

    Java中this的三种用法 调用属性 (1)this可以调用本类中的任何成员变量 调用方法(可省略) (2)this调用本类中的成员方法(在main方法里面没有办法通过this调用) 调用构造方法 ...

  9. C++学习---- virtual的三种用法

    virtual用法一:多态 #include<iostream> using namespace std; class A{ public: virtual void display(){ ...

随机推荐

  1. PHP加密解密函数

    <?php/***功能:对字符串进行加密处理*参数一:需要加密的内容*参数二:密钥*/function passport_encrypt($str,$key){ //加密函数 srand((do ...

  2. Android四大组件一----Activity

    最新面试需要复习一下Android基础. {所谓Activity} 通俗点:app上看到的窗口基本都是Activity Android 程序一般是由多个Activity组成,用户看到的能够交互的窗口通 ...

  3. android ping网络是否成功

    public static boolean pingHost(String str) { //str 为要ping的IP地址 boolean result = false; try { Process ...

  4. jQuery 插件开发解析

    那么首先我们来简单的看一下最正统的 jQuery 插件定义方式: (function ($) { $.fn.插件名 = function (settings) { //默认参数 var default ...

  5. 检测openOffice关闭 自动重启

    参考http://my.oschina.net/UpBoy/blog/301193   bat解释:循环检测任务列表找到soffice.exe,没找到就调用run.bat   @echo off :l ...

  6. 【转】Java JDBC连接SQL Server2005错误:通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败

    错误原因如下: Exception in thread "main" org.hibernate.exception.JDBCConnectionException: Cannot ...

  7. 菜鸟学习Spring——第一个例子

    一.概述 原来我们利用工厂来实现灵活的配置.现在利用Spring以后把这个交给了IoC容器管理.我们只要在XML文件上配上就可以了这样的话就节省了很多开发时间我们不需要知道后面的有多少只要动态的配上类 ...

  8. Convert Geometry data into a Geography data in MS SQL Server

    DECLARE @geog GEOGRAPHY; DECLARE @geom GEOMETRY; ); SET @geom = @geom.MakeValid() --Force to valid g ...

  9. 微软开放技术(中国)携 CKAN 和 OData 技术引入基于 Azure 的开放数据平台

    今天,微软开放技术(中国)通过微软公有云Azure引入一个全新的开放数据平台,该平台基于开源数据门户解决方案 CKAN,以及由微软开放技术(中国)特别针对中国市场优化的ODATA插件来增强其国际化和本 ...

  10. php连接mysql报错No such file or directory

    php测试文件如下: 1 2 3 4 5 6 7 8 9 10 11 <?php $con = mysql_connect("localhost","root&qu ...