在asp开发中,时常遇到向程序中写入HTML代码的情况,以在ashx中写入HTML为例,演示Nvelocity的使用,
1 VelocityEngine vltEngine = new VelocityEngine(); 2 //文件型模板,还可以是 assembly ,则使用资源文件 3 vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file"); 4 //模板存放目录 5 vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, 6 System.Web.Hosting.HostingEnvironment.MapPath("/template"));//模板文件所在的文件夹,这里需要传入你的HTML代码的路径 7 vltEngine.Init(); 8 //定义一个模板上下文 9 VelocityContext vltContext = new VelocityContext(); 10 //传入模板所需要的参数 11 vltContext.Put("data", ""); //设置参数,将在HTML中通过$设置的value对象引入进来 12 vltContext.Put("data", ""); //设置参数 13 vltContext.Put("data", ""); //设置参数 14 //获取我们刚才所定义的模板,上面已设置模板目录 15 Template vltTemplate = vltEngine.GetTemplate("Login.htm");// 拿到HTML的文件名 16 System.IO.StringWriter vltWriter = new System.IO.StringWriter(); 17 //根据模板的上下文,将模板生成的内容写进刚才定义的字符串输出流中 18 vltTemplate.Merge(vltContext, vltWriter); 19 string html = vltWriter.GetStringBuilder().ToString(); 20 context.Response.Write(html);
代码执行的过程是 先执行模板引擎,通过模板引擎去查找与之关联的HTML代码,也就是说,在运行程序的时候,不能通过HTML代码页来执行程序,只能通过ashx去执行
Nvelocity下载地址:http://ncu.dl.sourceforge.net/project/castleproject/NVelocity/1.1/CastleNVelocity-1.1.1.zip
时间: 2024-10-10 05:42:22