zoukankan      html  css  js  c++  java
  • Velocity简单语法及VelocityHelper封装

    1.简单替换
    ##这是注释
    Wellcome ${userName}! Now:$date

    2.申明变量:
    #set( $iAmVariable = "good!" )
    Welcome $name to Javayou.com!
    today is $date.
    $iAmVariable

    3.if语句:
    #set ($admin = "admin")
    #set ($user = "user")
    #if ($admin == $user)
    Welcome admin!
    #else
    Welcome user!
    #end

    4.遍历对象:
    #foreach( $product in $list )
    <li>$product</li>
    #end

    5.自定义对象:
    #foreach( $s in $students )
    <$velocityCount> No:$s.No, Address: $s.Address

    #end


    6.标签嵌套:
    #foreach ($element in $list) 
    --外部循环-- 
        $velocityCount:This is $element.
    --内部循环--
    #foreach ($element in $list)
          $velocityCount:This is $element.
    #end
    --内部循环--
    --外部循环--
    #end

    7.调用自定义对象方法:
    #foreach( $s in $students )
    <$velocityCount> $s.SayHello();

    #end

    [csharp] view plain copy
     
     print?
    1. using System.IO;  
    2. using NVelocity.App;  
    3. using NVelocity.Context;  
    4. using NVelocity.Runtime;  
    5.   
    6. namespace NVelocity  
    7. {  
    8.     /// <summary>  
    9.     ///     NVelocity模板工具类 VelocityHelper  
    10.     /// </summary>  
    11.     public class VelocityHelper  
    12.     {  
    13.         private IContext _context;  
    14.         private VelocityEngine _velocity;  
    15.         private string _templateName;  
    16.   
    17.         /// <summary>  
    18.         ///     构造函数  
    19.         /// </summary>  
    20.         /// <param name="templatDir">模板文件夹路径</param>  
    21.         /// <param name="templateName">模板文件名</param>  
    22.         public VelocityHelper(string templatDir, string templateName)  
    23.         {  
    24.             Init(templatDir);  
    25.             _templateName = templateName;  
    26.         }  
    27.   
    28.         /// <summary>  
    29.         ///     无参数构造函数  
    30.         /// </summary>  
    31.         public VelocityHelper()  
    32.         {  
    33.         }  
    34.   
    35.         /// <summary>  
    36.         /// 设置模板文件夹  
    37.         /// </summary>  
    38.         /// <param name="templatDir"></param>  
    39.         public void SetTemplateDirPath(string templatDir)  
    40.         {  
    41.             Init(templatDir);  
    42.         }  
    43.         /// <summary>  
    44.         /// 设置模板文件  
    45.         /// </summary>  
    46.         /// <param name="templateName"></param>  
    47.         public void SetTemplateFileName(string templateName)  
    48.         {  
    49.             _templateName = templateName;  
    50.         }  
    51.   
    52.   
    53.         /// <summary>  
    54.         ///     初始化NVelocity模块  
    55.         /// </summary>  
    56.         /// <param name="templatDir">模板文件夹路径</param>  
    57.         public void Init(string templatDir)  
    58.         {  
    59.             //创建VelocityEngine实例对象并设置初始化VelocityEngine   
    60.             _velocity = new VelocityEngine();  
    61.             _velocity.SetProperty(RuntimeConstants_Fields.RESOURCE_LOADER, "file");  
    62.             _velocity.SetProperty(RuntimeConstants_Fields.FILE_RESOURCE_LOADER_PATH, templatDir);  
    63.             _velocity.SetProperty(RuntimeConstants_Fields.INPUT_ENCODING, "utf-8");  
    64.             _velocity.SetProperty(RuntimeConstants_Fields.OUTPUT_ENCODING, "utf-8");  
    65.             _velocity.Init();  
    66.   
    67.             //为模板变量赋值  
    68.             _context = new VelocityContext();  
    69.         }  
    70.   
    71.         /// <summary>  
    72.         ///     给模板变量赋值  
    73.         /// </summary>  
    74.         /// <param name="key">模板变量</param>  
    75.         /// <param name="value">模板变量值</param>  
    76.         public void Put(string key, object value)  
    77.         {  
    78.             if (_context == null)  
    79.             {  
    80.                 _context = new VelocityContext();  
    81.             }  
    82.             _context.Put(key, value);  
    83.         }  
    84.   
    85.         /// <summary>  
    86.         ///     渲染模板  
    87.         /// </summary>   
    88.         public string Render()  
    89.         {  
    90.             if (!string.IsNullOrEmpty(_templateName))  
    91.             {  
    92.                 //从文件中读取模板  
    93.                 Template template = _velocity.GetTemplate(_templateName);  
    94.   
    95.                 //合并模板  
    96.                 var writer = new StringWriter();  
    97.                 template.Merge(_context, writer);  
    98.                 return writer.GetStringBuilder().ToString();  
    99.             }  
    100.             return "未指定模板文件!";  
    101.         }  
    102.     }  
    103. }  

    完整Demo下载:http://download.csdn.net/detail/a497785609/5405089

    相关资料:

    掌握一种 C#/.Net 模板技术 — Velocity:http://unmi.cc/csharp-velocity-templat

    Velocity初体验 http://tech.163.com/04/1230/03/18QP3L080009159J.html

    NVelocity介绍,NVelocity中文手册文档及实例下载 http://tommyhu.cn/NVelocity/ 

  • 相关阅读:
    反调试:ZwQueryInformationProcess
    反调试:检测类名与标题名
    对某个区间操作(sort,stable_sort,parital_sort,parital_sort_copy,nth_element,is_sorted)
    数值算法(accumluate,inner_product,partial_sum,adjacent_difference,power,itoa)
    随机重拍与抽样(random_shuffle,random_sample,random_sample_n)
    分割(partition,stable_partition)
    子序列匹配(search,search_n,adjcent_find,find,find_if,find_first_of,find_end)
    MySQL管理实务处理
    MySQL触发器
    MySQL使用游标
  • 原文地址:https://www.cnblogs.com/wangluochong/p/5981132.html
Copyright © 2011-2022 走看看