在VelocityEngine初始化前,可以通过ExtendedProperties配置NVelocity的运行环境参数,当执行
VelocityEngine的Init(ExtendedProperties)后,NVelocity会合并自定义配置和默认配置。
NVelocity在NVelocity.Runtime.RuntimeConstants中定义了默认配置项的名称,在内嵌资源文件
NVelocity.Runtime.Defaults.nvelocity.properties中定义了所有默认配置项的值。下面列出一些常用配置:
模板编码:
input.encoding=ISO-8859-1 //模板输入编码
output.encoding=ISO-8859-1//模板输出编码
#foreach配置
directive.foreach.counter.name = velocityCount //计数器名称
directive.foreach.counter.initial.value = 1 //计数器初始值
directive.foreach.maxloops
= -1 //最大循环次数,-1为默认不限制
directive.foreach.iterator.name = velocityHasNex//迭代器名称
#set配置
directive.set.null.allowed = false //是否可设置空值
#include配置
directive.include.output.errormsg.start = <!-- include error : //错误信息提示开始字符串
directive.include.output.errormsg.end =see error log -->//错误信息提示结束字符串
#parse配置
directive.parse.max.depth = 10 //解析深度
模板加载器配置
resource.loader = file //模板加载器类型,默认为文件,可定义多个
file.resource.loader.description = Velocity File Resource Loader //加载器描述
file.resource.loader.class = NVelocity.Runtime.Resource.Loader.FileResourceLoader //加载器类名称
file.resource.loader.path = .//模板路径
file.resource.loader.cache = false //是否启用模板缓存
file.resource.loader.modificationCheckInterval = 2 //检查模板更改时间间隔
宏配置
velocimacro.permissions.allow.inline = true//是否可以行内定义
velocimacro.permissions.allow.inline.to.replace.global = false //是否可以用行内定义代替全局定义
velocimacro.permissions.allow.inline.local.scope = false //行内定义是否只用于局部
velocimacro.context.localscope = false//宏上下文是否只用于局部
velocimacro.max.depth = 20//解析深度
velocimacro.arguments.strict = false //宏参数是否启用严格模式
资源管理器配置
resource.manager.class = NVelocity.Runtime.Resource.ResourceManagerImpl//管理器类名称
resource.manager.cache.class = NVelocity.Runtime.Resource.ResourceCacheImpl //缓存器类名称
解析器池配置
parser.pool.class = NVelocity.Runtime.ParserPoolImpl //解析池类名称
parser.pool.size = 40//初始大小
#evaluate配置
directive.evaluate.context.class = NVelocity.VelocityContext //上下问类名称
可插入introspector配置
runtime.introspector.uberspect = NVelocity.Util.Introspection.UberspectImpl //默认introspector类名称
在
NVelocity中有的配置是可以定义多个的,比如资源加载器。注意一点在传入的实现类名称一定要采用:class
fullname;assembly
name格式,比如自定义了一个资源加载器EasyNet.Mvc.AssemblyResourceLoader,程序集名称为
EasyNet.Mvc,那么应该如下示例定义:
VelocityEngine velocity = new VelocityEngine();
ExtendedProperties props = new ExtendedProperties();
//定义资源加载器
props.AddProperty(RuntimeConstants.RESOURCE_LOADER, "EasyNet.Mvc.AssemblyResourceLoader;EasyNet.Mvc");
//初始化
velocity.Init(props);
分享到:
相关推荐
使用NVelocity时,你需要配置一个VelocityEngine实例,然后加载模板文件,并设置上下文(Context)中的变量。上下文是模板中变量和其对应值的容器。一旦配置完成,你可以通过引擎的`mergeTemplate`方法将模板与上...
NVelocity是Java模板引擎Velocity的.Net版本。NVelocity目前官方版本为0.42。官方地址:http://nvelocity.sourceforge.net/,原作者已经申明不再对NVelocity做技术支持了,所以sourceforge上NVelocity版本一直是0.42...
以下是一个简单的C#入门示例,展示了如何使用Json和NVelocity: 首先,你需要创建一个Json对象并序列化成字符串: ```csharp var myObject = new { Name = "John", Age = 30 }; var jsonSerializerSettings = new ...
3. **指令(Directives)**:NVelocity提供了多种内置指令,如`#if`, `#foreach`, `#set`等,用于控制模板的逻辑流程。 4. **宏(Macros)**:宏类似于函数,可以在模板中定义并重复使用,用来封装常见或复杂的HTML...
NVelocity.dll 文件是开源项目[NVelocity](https://github.com/NVelocity/NVelocity)的一部分,它是一个基于.NET Framework的模板引擎,用于生成动态内容。NVelocity灵感来源于Apache Velocity,它允许开发者将逻辑...
5. **指令控制(Controls)**:NVelocity提供了多种控制结构,如`#foreach`, `#if/else`, `#break`, `#continue`等,用于实现复杂的逻辑控制。 6. **自定义函数和方法**:你可以注册自定义的C#方法,使其在模板中可...
1. **NVelocity模板语言**:NVelocity模板语言(VTL)是一种简单的标记语言,它允许开发者在模板中嵌入变量和控制结构。例如,可以使用`#foreach`循环遍历学员列表,`$student.name`获取学员姓名等。这种模板语言...
3. **配置Nvelocity**:在C#代码中初始化`VelocityEngine`实例,设置资源加载器,如`FileResourceLoader`,指定模板文件所在的目录。 ```csharp VelocityEngine engine = new VelocityEngine(); engine.Init(new ...
1. **模板语言**:NVelocity使用自己的模板语言(VTL, Velocity Template Language),这是一种非脚本语言,设计简洁,易于学习和使用。VTL使得开发者能够通过简单的指令(如`#set`, `#if`, `#foreach`等)来控制...
- **模板**:NVelocity的中心是模板,这是一种特殊的文本文件,其中包含了固定文本和可变内容。可变内容由${expression}或#set指令表示,它们会被模板引擎解析并替换为运行时的值。 - **上下文(Context)**:这是...
为了在项目中使用NVelocity,你需要首先添加NVelocity.dll为项目引用,然后创建一个VelocityEngine实例,配置必要的属性如模板目录。接着,创建一个VelocityContext对象,将数据模型放入其中。最后,通过Engine实例...
NVelocity是一款强大的、开源的模板引擎,最初是为Java平台设计的,但通过特定的封装,它也能够被C#开发者在ASP.NET平台上利用。NVelocity语法是用于生成动态内容的关键,它允许开发者将静态HTML模板与应用程序数据...
NVelocity提供了一系列API,使得.NET开发者可以方便地初始化、解析和合并模板。以下是一些关键的API: 1. `VelocityContext`: 这是上下文对象,用于存储数据,这些数据在模板中可以通过变量引用访问。你可以通过`...
2017年的这个资源集合提供了一系列NVelocity的使用案例,旨在帮助初学者快速理解和掌握其核心功能。 一、NVelocity基本概念 NVelocity引擎主要由两个核心组件构成:模板(Template)和上下文(Context)。模板是纯...
本使用文档将深入探讨NVelocity的核心概念、安装与配置、语法特性、以及实际应用示例,帮助你全面掌握这一工具。 **一、NVelocity简介** NVelocity的主要功能是将静态模板与动态数据结合,生成定制化的输出。它允许...
5. **性能优化**:NVelocity通过预编译模板来提升性能,将模板转化为.NET字节码,减少运行时解析的时间。 关于压缩包中的“Test”文件,这可能是NVelocity的测试用例或者示例程序,用于展示如何使用NVelocity引擎。...
### NVelocity用法详解 NVelocity 是一个 .NET 框架下的模板引擎,它提供了一种简单且高效的方式来处理动态内容的生成。基于 Java 的 Velocity 引擎,NVelocity 被设计用于 .NET 平台,允许开发人员利用其强大的...
NVelocity语法 NVelocity是一种基于模板的template engine,用于生成动态网页内容。下面是NVelocity语法的详细知识点: 变量和表达式 在NVelocity中,变量是通过 `$`符号来声明的,例如 `$customer.Name`。变量...
`Default.aspx`是ASP.NET Web Forms的应用首页,`NVelocityDemo.csproj.user`是项目的用户配置文件,`Web.config`是应用程序的配置文件,`TemplateHelper.cs`可能是一个自定义的帮助类,用于封装NVelocity模板的处理...
在.NET应用中,首先需要添加NVelocity库的引用,然后创建一个`VelocityEngine`实例,并通过`Init`方法设置配置。接着,加载模板文件,使用`Evaluate`方法将数据模型与模板结合,生成最终输出。 4. **例子** - **...