zoukankan      html  css  js  c++  java
  • .Net之NVelocity的三种用法 【转】

    using NVelocity;
    using NVelocity.App;
    using NVelocity.Runtime;

    VelocityEngine vltEngine = 
    new VelocityEngine();
    vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, 
    "file");
    vltEngine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, Server.MapPath(
    "~/Template/"));
    vltEngine.Init();

    VelocityContext vltContext = 
    new VelocityContext();
    vltContext.Put(
    "PageTitle""文件模板例子");
    vltContext.Put(
    "ListUsers", listUsers);

    Template vltTemplate = vltEngine.GetTemplate(
    "Default.htm");
    System.IO.StringWriter vltWriter = 
    new System.IO.StringWriter();
    vltTemplate.Merge(vltContext, vltWriter);

    Response.Write(vltWriter.GetStringBuilder().ToString());

    例子下载

    using NVelocity;
    using NVelocity.App;
    using NVelocity.Runtime;

            IList<
    string> listAssembly = new List<string>();
            
    // 添加程序集名称
            listAssembly.Add("LibTest");

            VelocityEngine vltEngine = 
    new VelocityEngine();
            vltEngine.SetProperty(RuntimeConstants.RESOURCE_LOADER, 
    "assembly");
            vltEngine.SetProperty(
    "assembly.resource.loader.class""NVelocity.Runtime.Resource.Loader.AssemblyResourceLoader; NVelocity"); // 固定写法- -!
            vltEngine.SetProperty("assembly.resource.loader.assembly", listAssembly);
            vltEngine.Init();

            VelocityContext vltContext = 
    new VelocityContext();
            vltContext.Put(
    "PageTitle""资源模板例子");
            vltContext.Put(
    "ListUsers", listUsers);

            Template vltTemplate = vltEngine.GetTemplate(
    "LibTest.Resources.Default.htm");
            System.IO.StringWriter vltWriter = 
    new System.IO.StringWriter();
            vltTemplate.Merge(vltContext, vltWriter);

            Response.Write(vltWriter.GetStringBuilder().ToString());

    例子下载

    using NVelocity;
    using NVelocity.App;
    using NVelocity.Runtime;

    System.Text.StringBuilder builder = 
    new System.Text.StringBuilder();
            builder.Append(
    "#foreach($u in $ListUsers)"r"n" +
                
    "#beforeall"r"n" +
                
    "<table border=""0"" cellpadding=""10"" cellspacing=""10"">" +
                
    "<tr><td>Name</td><td>Sex</td><td>City</td></tr>" +
                
    "#each"r"n" +
                
    "<tr>" +
                
    "<td>$u.Name</td>" +
                
    "<td>$u.Sex</td>" +
                
    "<td>$u.City</td>" +
                
    "</tr>" +
                
    "#afterall"r"n" +
                
    "</table>" +
                
    "#nodata"r"n" +
                
    "暂无用户资料"r"n" +
                
    "#end");

            VelocityEngine vltEngine = 
    new VelocityEngine();
            vltEngine.Init();

            VelocityContext vltContext = 
    new VelocityContext();
            vltContext.Put(
    "PageTitle""字符串模板例子");
            vltContext.Put(
    "ListUsers", listUsers);

            System.IO.StringWriter vltWriter = 
    new System.IO.StringWriter();
            vltEngine.Evaluate(vltContext, vltWriter, 
    null, builder.ToString());

            Response.Write(vltWriter.GetStringBuilder().ToString());

  • 相关阅读:
    ES6 import、export的写法
    不带分号可能会引起出错的情况
    npm传参技巧
    深度优先遍历和广度优先遍历
    WebGL的shader
    web component
    页面的beforeunload和unload的事件应用
    暴搜
    子集树与排列树
    概率论
  • 原文地址:https://www.cnblogs.com/cxd4321/p/1585060.html
Copyright © 2011-2022 走看看