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. 在Activity中设置new出来的TextView属性

    //创建一个TextView---->textView TextView textView = new TextView(this);   // 第一个参数为宽的设置,第二个参数为高的设置 te ...

  2. jquery.unobtrusive-ajax.js单独的用法

    (插件本身已经减少了人力,如果开始无脑开发,简直就是无能,@Ajax里面哪里帮助类生成的其实就是jquery.unobtrusive的一些特性) jquery.unobtrusive是MVC中出现的j ...

  3. 包装类(Wrapper Class)

    1)包装类.针对于原生数据类型的包装.所有的包装类(8个)对位于java.lang包下.java中的8个包装类分别是:Byte,Short,Integer,Long,Float.Double,Char ...

  4. C/C++ 内存管理 (《高质量C++》-- 整理笔记)

    内存管理是我们在编程时经常遇到的问题,而关于内存管理的问题往往会导致我们无从下手,这篇随笔是我阅读<高质量C++>第7章“内存管理”时一些总结. 1.内存分配方式 在C++中内存分为5个区 ...

  5. Android 虚拟机 Davlik

    Dalvik虚拟机是Google的用于移动设备的Android平台的一个主要部分.虚拟机可运行Java平台应用程序,这些应用程序被转换成紧凑的Dalvik可执行格式(.dex),该格式适合内存和处理器 ...

  6. hdu 5311 Hidden String

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5311 Hidden String Description Today is the 1st anniv ...

  7. poj 3580 SuperMemo

    题目连接 http://poj.org/problem?id=3580 SuperMemo Description Your friend, Jackson is invited to a TV sh ...

  8. hdu 1047 Integer Inquiry

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1047 Integer Inquiry Description One of the first use ...

  9. NFC应用实例

    package com.example.mynfcdemon; import android.app.Activity;import android.nfc.NfcAdapter;import and ...

  10. MVC4.0 解决Controllers与Areas中控制器不能同名问题

    在使用MVC4.0的时候,难免会遇到在根目录下的Controllers中添加的控制器名称可能会跟在Areas中的某个区域下的控制器名称一样.这个时候访问Areas下面的Controller/Actio ...