使用步骤。
a) 创建Velocity 引擎(VelocityEngine)并设置属性.
b) VelocityContext 上下文对象创建于设置.
c) 使用VelocityEngine(Velocity 引擎)创建模板(Template).
d) 合并模板和上下文对象、输出.
代码演示。
先引入NVelocity.dll,然后添加代码。
1.一般处理类ShowHTML.ashx代码如下:
<%@ WebHandler Language="C#" Class="ShowHTML" %>
using System;
using System.Web;
// NVelocity 引用
using NVelocity;
using NVelocity.App;
using NVelocity.Runtime;
public class ShowHTML : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
// 1.创建Velocity 引擎(VelocityEngine)并设置属性
VelocityEngine velocityEngine = new VelocityEngine();
velocityEngine.AddProperty(RuntimeConstants.RESOURCE_LOADER, "file"); // Velocity加载类型
velocityEngine.AddProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH,
context.Server.MapPath("~/Template/")); // Velocity加载模板文件夹路径
velocityEngine.AddProperty(RuntimeConstants.INPUT_ENCODING, "gb2312"); // 输入编码格式设置
velocityEngine.AddProperty(RuntimeConstants.OUTPUT_ENCODING, "gb2312"); // 输出编码格式设置
velocityEngine.Init();
// 2.Velocity 上下文对象设置
VelocityContext vc = new VelocityContext();
// 页面参数设值
vc.Put("Name", "MT!");
System.Collections.Generic.List<String> list = new System.Collections.Generic.List<string>();
for (int i = 1; i < 11; i++)
{
list.Add("My Name Is :" + i);
}
vc.Put("list", list);
// 3.创建模板(Template),default.html为模板文件的名称。在模板文件夹目录
Template template = velocityEngine.GetTemplate("default.html");
// 4.合并模板和上下文对象、输出
template.Merge(vc, HttpContext.Current.Response.Output);
HttpContext.Current.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
2.default.html模板代码如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>NVelocity 使用测试模板</title>
</head>
<body>
俺叫$Name <br />
#foreach($item in $list)
$item
<br />
#end
</body>
</html>
3.效果如下:
原文:http://www.cnblogs.com/stone_w/archive/2011/09/09/2172341.html