Velocity简单语法及VelocityHelper封装
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封装相关推荐
- php 怎么输出alert,php简单提示框alert封装函数
php简单提示框alert封装函数 发布于 2014-11-03 16:35:27 | 89 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pr ...
- Golang简单语法
Golang简单语法 文章目录 Golang简单语法 GO语言 简介 Golang的格式检查 注释 主函数模板 `变量` 输入和输出语句 变量的类型 变量的定义和赋值 常量 流程控制 `函数` 内置函 ...
- velocity 模板语法
velocity 模板语法 前言 1. 访问 1.1 变量 1.2 属性 1.3 方法 2. 指令 2.1 #set 创建变量 2.2 #if/#elseif/#else 分支控制 2.3 #fore ...
- 简单的动画函数封装(2)
<div></div><!-- <span></span> --><button class="btn1"> ...
- 简单的动画函数封装(1)
//创建简单的动画函数封装效果(目标对象,目标位置) function animate(obj,target){var id = setInterval(function(){if(obj.offse ...
- 简单的实现RAII封装。
简单的实现RAII封装. 前面的文章中介绍了通过RAII的技术实现保证资源被释放和某函数被执行的类似finally关键字的功能.并演示了一个通过boost的function和bind的两个库实现的通用 ...
- 嵌入式基础认识2:shell脚本的一些简单语法规则
一.关于shell的一些认识 1.shell语言,是一类编程语言.常用shell语言有sh.bash.csh.ksh.perl.python等.linux下最常用的脚本就是bash. 2.shell脚 ...
- 编译原理简单语法分析器(first,follow,分析表)源码下载
编译原理(简单语法分析器下载) http://files.cnblogs.com/files/hujunzheng/%E5%8A%A0%E5%85%A5%E5%90%8C%E6%AD%A5%E7%AC ...
- T-Sql(一)简单语法
Sql Server是鄙人学习的第一种数据库,对Sql Server有一种特别的情感,下面就说一下Sql Server的简单语法,适用初学者. 1,创建数据库create database creat ...
最新文章
- 中北大学c语言程序设计作业答案,2016年中北大学软件学院程序设计基础考研复试题库...
- 跨境电商自建站后台系统原型rp_Shoptago---跨境电商平台又一个新选择
- 时间同步失败_跨系统历史数据同步脚本实战
- Window下yolov3的配置教程
- 练习2-1 Programming in C is fun!
- selenium选错弹出层的下拉框
- Notepad++格式化JSON
- Java面向对象之多态解析、final关键字
- 开课吧:浅析语音识别算法工程师能力要求
- 基于光流模型的图像运动分析
- xcode 左边导航栏中,类文件后面的标记“A”,M,?……等符号的含义???(转)...
- 在 Linux 下搭建 FTP 服务器
- IDEA打包war部署到Tomcat
- Excel技巧:如何将数值改成以万为单位,且保留小数点两位?
- 南京商标注册流程是什么
- 北京邮电计算机课程表,北京邮电大学课表管理规定
- 人体神经系统示意图手绘,人体神经结构图示意图
- 51Nod1584 加权约数和-题解
- 爱说分手 吹了9个男朋友
- 从3元/条的个人信息买卖看企业数据安全建设
热门文章
- let和const注意点
- Android 视频播放器 (二):使用MediaPlayer播放视频
- 特斯拉进入Autopilot 2.0时代,高举“普通雷达”旗帜!
- 被逮到一个初始状态考虑不周的Bug
- 透视宝移动端对Unity手机游戏引擎监控实现
- 【SQL 提示 之二】index_ss Index Skip Hint
- mysql 服务意外停止1067错误解决办法小结
- 我需要完全理解这部分代码才能确保它能够正常工作,如果由我来修复代码中的问题,我是不会这么写的,因此希望你也不要这么来写(转)...
- 通过文件锁 Lockfile/flock 让脚本单实例运行
- Java抓取电脑屏幕