A、nVelocity是一个基于.NET的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象。页面设计人员可以只关注页面的显示效果,而由.NET程序开发人员关注业务逻辑编码。

B、模板引擎处理流程:编写模板->处理数据->渲染HTML。

C、Nvelocity下载地址:http://www.castleproject.org/download/

D、一个简单的示例:

  新建一个Application,在项目中添加Nvelocity的引用,然后添加新建项,选择一般处理程序,命名为login.ashx,在ProcessRequest方法里写下面代码:

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/html";

            //是否载入
            string ispostback = context.Request["ispostback"];
            if (string.IsNullOrEmpty(ispostback))
            {
                //创建NVelocity实例对象
                VelocityEngine vltEngine = new VelocityEngine();
                vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file");

                //模板存放目录
                vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, HostingEnvironment.MapPath("/template"));
                vltEngine.Init();

                //定义一个模板上下文
                VelocityContext vltContext = new VelocityContext();

                //传入模板所需要的参数
                vltContext.Put("username", "");
                vltContext.Put("password", "");
                vltContext.Put("msg", "载入");

                //获取我们刚才所定义的模板,上面已设置模板目录
                Template vltTemplate = vltEngine.GetTemplate("login.htm");

                //根据模板的上下文,将模板生成的内容写进刚才定义的字符串输出流中
                StringWriter vltWriter = new StringWriter();
                vltTemplate.Merge(vltContext, vltWriter);
                string html = vltWriter.GetStringBuilder().ToString();
                context.Response.Write(html);
            }
        }
View Code

相关文章: