<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 />&nbsp;&nbsp;&nbsp; 码:<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; }
    }

相关文章:

  • 2022-02-19
  • 2021-07-30
  • 2022-02-18
  • 2021-11-01
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-17
  • 2022-02-28
  • 2022-02-12
  • 2022-12-23
  • 2021-11-03
  • 2021-09-28
相关资源
相似解决方案