<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>登录</title> </head> <body> <form action="../login.ashx"> 用户名:<input type="text" name="username" value="$username" /><br /> 密 码:<input type="text" name="password" value="$password" /><br /> <input type="hidden" name="ispostback" value="true" /> <input type="submit" value="提交"/> <p>$msg</p> </form> </body> </html>
public class Person { public string Name { set;get;} public int Age { set; get; } public Person Father { set; get; } }
把需要做的模板字段用$标示,还要声明一个person类
先把类型改为“text/html”解析html
public class login2 : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/html"; Person person = new Person(); person.Name = "yzk"; person.Age = 30; Person dad = new Person(); dad.Name = "ff"; dad.Age = 60; //把father指向一个dad; person.Father = dad; VelocityEngine vltEngine = new VelocityEngine();//实例化一个velocity模版引擎 vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file"); vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夹 vltEngine.Init(); VelocityContext vltContext = new VelocityContext(); vltContext.Put("p",person);//设置参数,在模板中可以通过$data来引用 //把person对象作为传入p Template vltTemplate = vltEngine.GetTemplate("test.htm"); System.IO.StringWriter vltWriter = new System.IO.StringWriter(); vltTemplate.Merge(vltContext, vltWriter); string html = vltWriter.GetStringBuilder().ToString();//得到html这个模板 context.Response.Write(html); //context.Response.Write("Hello World"); //string username=context.Request ["username"]; //string password=context .Request ["password"]; //if (string.IsNullOrEmpty (username)&&string.IsNullOrEmpty (password )) //{ //VelocityEngine vltEngine = new VelocityEngine();//实例化一个velocity模版引擎 //vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file"); //vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夹 //vltEngine.Init(); //VelocityContext vltContext = new VelocityContext(); // vltContext.Put("username", "");//设置参数,在模板中可以通过$data来引用 // vltContext.Put("password", ""); // vltContext.Put("msg", ""); // Template vltTemplate = vltEngine.GetTemplate("login.htm"); //System.IO.StringWriter vltWriter = new System.IO.StringWriter(); //vltTemplate.Merge(vltContext, vltWriter); //string html = vltWriter.GetStringBuilder().ToString();//得到html这个模板 //context.Response.Write(html); //} //else //{ // if (username=="admin"&&password=="123") // { // context.Response.Write("登陆成功"); // } // else // { // VelocityEngine vltEngine = new VelocityEngine();//实例化一个velocity模版引擎 // vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file"); // vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夹 // vltEngine.Init(); // VelocityContext vltContext = new VelocityContext(); // vltContext.Put("username", username );//设置参数,在模板中可以通过$data来引用 // vltContext.Put("password", password ); // vltContext.Put("msg", "登录失败"); // Template vltTemplate = vltEngine.GetTemplate("login.htm"); // System.IO.StringWriter vltWriter = new System.IO.StringWriter(); // vltTemplate.Merge(vltContext, vltWriter); // string html = vltWriter.GetStringBuilder().ToString();//得到html这个模板 // context.Response.Write(html); // } //} //VelocityEngine vltEngine = new VelocityEngine(); //vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file"); //vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/templates"));//模板文件所在的文件夹 //vltEngine.Init(); //VelocityContext vltContext = new VelocityContext(); //vltContext.Put("p", person);//设置参数,在模板中可以通过$data来引用 //Template vltTemplate = vltEngine.GetTemplate("test.htm"); //System.IO.StringWriter vltWriter = new System.IO.StringWriter(); //vltTemplate.Merge(vltContext, vltWriter); //string html = vltWriter.GetStringBuilder().ToString(); }
1、基本用法
vltContext.Put("username", username); 在模板中可以通过$username来引用
<input type="text" name="username" value="$username" />
2、对象的属性
下面演示一些更加高级的用法,直接Put一个对象,然后在模版中引用其属性。Nvelocity还可以支持对象的属性是对象的调用方法,引用的时候就好比$p.Name。
先定义一个C#类,Person.cs
public class Person
{
public string name{ get; set; }
public string age { get; set; }
}