2019独角兽企业重金招聘Python工程师标准>>>

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

using System.IO;
using NVelocity.App;
using NVelocity.Context;
using NVelocity.Runtime;namespace NVelocity
{/// <summary>///     NVelocity模板工具类 VelocityHelper/// </summary>public class VelocityHelper{private IContext _context;private VelocityEngine _velocity;private string _templateName;/// <summary>///     构造函数/// </summary>/// <param name="templatDir">模板文件夹路径</param>/// <param name="templateName">模板文件名</param>public VelocityHelper(string templatDir, string templateName){Init(templatDir);_templateName = templateName;}/// <summary>///     无参数构造函数/// </summary>public VelocityHelper(){}/// <summary>/// 设置模板文件夹/// </summary>/// <param name="templatDir"></param>public void SetTemplateDirPath(string templatDir){Init(templatDir);}/// <summary>/// 设置模板文件/// </summary>/// <param name="templateName"></param>public void SetTemplateFileName(string templateName){_templateName = templateName;}/// <summary>///     初始化NVelocity模块/// </summary>/// <param name="templatDir">模板文件夹路径</param>public void Init(string templatDir){//创建VelocityEngine实例对象并设置初始化VelocityEngine _velocity = new VelocityEngine();_velocity.SetProperty(RuntimeConstants_Fields.RESOURCE_LOADER, "file");_velocity.SetProperty(RuntimeConstants_Fields.FILE_RESOURCE_LOADER_PATH, templatDir);_velocity.SetProperty(RuntimeConstants_Fields.INPUT_ENCODING, "utf-8");_velocity.SetProperty(RuntimeConstants_Fields.OUTPUT_ENCODING, "utf-8");_velocity.Init();//为模板变量赋值_context = new VelocityContext();}/// <summary>///     给模板变量赋值/// </summary>/// <param name="key">模板变量</param>/// <param name="value">模板变量值</param>public void Put(string key, object value){if (_context == null){_context = new VelocityContext();}_context.Put(key, value);}/// <summary>///     渲染模板/// </summary> public string Render(){if (!string.IsNullOrEmpty(_templateName)){//从文件中读取模板Template template = _velocity.GetTemplate(_templateName);//合并模板var writer = new StringWriter();template.Merge(_context, writer);return writer.GetStringBuilder().ToString();}return "未指定模板文件!";}}
}

完整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/

转载于:https://my.oschina.net/zhangqs008/blog/200259

Velocity简单语法及VelocityHelper封装相关推荐

  1. php 怎么输出alert,php简单提示框alert封装函数

    php简单提示框alert封装函数 发布于 2014-11-03 16:35:27 | 89 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...

  2. Golang简单语法

    Golang简单语法 文章目录 Golang简单语法 GO语言 简介 Golang的格式检查 注释 主函数模板 `变量` 输入和输出语句 变量的类型 变量的定义和赋值 常量 流程控制 `函数` 内置函 ...

  3. velocity 模板语法

    velocity 模板语法 前言 1. 访问 1.1 变量 1.2 属性 1.3 方法 2. 指令 2.1 #set 创建变量 2.2 #if/#elseif/#else 分支控制 2.3 #fore ...

  4. 简单的动画函数封装(2)

    <div></div><!-- <span></span> --><button class="btn1"> ...

  5. 简单的动画函数封装(1)

    //创建简单的动画函数封装效果(目标对象,目标位置) function animate(obj,target){var id = setInterval(function(){if(obj.offse ...

  6. 简单的实现RAII封装。

    简单的实现RAII封装. 前面的文章中介绍了通过RAII的技术实现保证资源被释放和某函数被执行的类似finally关键字的功能.并演示了一个通过boost的function和bind的两个库实现的通用 ...

  7. 嵌入式基础认识2:shell脚本的一些简单语法规则

    一.关于shell的一些认识 1.shell语言,是一类编程语言.常用shell语言有sh.bash.csh.ksh.perl.python等.linux下最常用的脚本就是bash. 2.shell脚 ...

  8. 编译原理简单语法分析器(first,follow,分析表)源码下载

    编译原理(简单语法分析器下载) http://files.cnblogs.com/files/hujunzheng/%E5%8A%A0%E5%85%A5%E5%90%8C%E6%AD%A5%E7%AC ...

  9. T-Sql(一)简单语法

    Sql Server是鄙人学习的第一种数据库,对Sql Server有一种特别的情感,下面就说一下Sql Server的简单语法,适用初学者. 1,创建数据库create database creat ...

最新文章

  1. 中北大学c语言程序设计作业答案,2016年中北大学软件学院程序设计基础考研复试题库...
  2. 跨境电商自建站后台系统原型rp_Shoptago---跨境电商平台又一个新选择
  3. 时间同步失败_跨系统历史数据同步脚本实战
  4. Window下yolov3的配置教程
  5. 练习2-1 Programming in C is fun!
  6. selenium选错弹出层的下拉框
  7. Notepad++格式化JSON
  8. Java面向对象之多态解析、final关键字
  9. 开课吧:浅析语音识别算法工程师能力要求
  10. 基于光流模型的图像运动分析
  11. xcode 左边导航栏中,类文件后面的标记“A”,M,?……等符号的含义???(转)...
  12. 在 Linux 下搭建 FTP 服务器
  13. IDEA打包war部署到Tomcat
  14. Excel技巧:如何将数值改成以万为单位,且保留小数点两位?
  15. 南京商标注册流程是什么
  16. 北京邮电计算机课程表,北京邮电大学课表管理规定
  17. 人体神经系统示意图手绘,人体神经结构图示意图
  18. 51Nod1584 加权约数和-题解
  19. 爱说分手 吹了9个男朋友
  20. 从3元/条的个人信息买卖看企业数据安全建设

热门文章

  1. let和const注意点
  2. Android 视频播放器 (二):使用MediaPlayer播放视频
  3. 特斯拉进入Autopilot 2.0时代,高举“普通雷达”旗帜!
  4. 被逮到一个初始状态考虑不周的Bug
  5. 透视宝移动端对Unity手机游戏引擎监控实现
  6. 【SQL 提示 之二】index_ss Index Skip Hint
  7. mysql 服务意外停止1067错误解决办法小结
  8. 我需要完全理解这部分代码才能确保它能够正常工作,如果由我来修复代码中的问题,我是不会这么写的,因此希望你也不要这么来写(转)...
  9. 通过文件锁 Lockfile/flock 让脚本单实例运行
  10. Java抓取电脑屏幕