技术开发 频道

强大的模板引擎开源软件NVelocity

    变量说明

    在VTL中,所有变量标识符的开头要加上$字符,如$Name,也可以用一种更加明确的方法表示,例如${name}。
变量标识符被映射到稍后即将介绍的VelocityContext对象。在模板引擎处理模板时,变量名称(如name)被替换成VelocityContext中提供的值

    C#代码

Velocity.Init("nvelocity.properties"); VelocityContext context = new VelocityContext(); context.Put("list", Names); Template template = null; try { template = Velocity.GetTemplate("test.cs.vm"); } catch (ParseErrorException pee) { System.Console.Out.WriteLine("Syntax error: " + pee); } if (template != null) { template.Merge(context, System.Console.Out); }

    注释
    单行注释 

## This is a single line comment

    多行注释 

#* Thus begins a multi-line comment. Online visitors won't see this text because the Velocity Templating Engine will ignore it. *#

    属性或方法

$customer.Address $purchase.Total $page.SetTitle( "My Home Page" ) $person.SetAttributes( ["Strange", "Weird", "Excited"] )

    指令

#set( $primate = "monkey" ) #set( $monkey.Friend = "monica" ) #set( $criteria = ["name", "address"] ) #foreach( $criterion in $criteria ) #set( $result = $query.criteria($criterion) ) #if( $result ) Query was successful #end #end If / ElseIf / Else Foreach 循环 #if( $foo < 10 ) <strong>Go North</strong> #elseif( $foo == 10 ) <strong>Go East</strong> #elseif( $bar == 6 ) <strong>Go South</strong> #else <strong>Go West</strong> #end <ul> #foreach( $product in $allProducts ) <li>$product</li> #end </ul>

    (称为函数更合适)
    #macro 脚本元素允许模板设计者在VTL 模板中定义重复的段。 Velocimacros 不管是在复杂还是简单的场合都非常有用。下面这个Velocimacro,仅用来节省击键和减少排版错误,介绍了一些NVelocity宏的概念。
可以带参数,参数放在宏名称的后面,空格隔开

#macro( d ) <tr><td></td></tr> #end #d() #macro( callme $a ) $a $a $a #end #callme( $foo.bar() )

    包含
    #include 脚本元素允许模板设计人员包含(导入)本地文件, 这个文件将插入到#include 指令被定义的地方。文件的内容并不通过模板引擎来渲染。
#include( "one.txt" )

    解析
#parse 脚本元素允许页面设计员导入包含VTL的本地文件。 Velocity将解析和渲染指定的模板。
#parse( "me.vm" )

    在根目录NVelocity-***\test\templates下有各种模板语言语法的实例,在NVelocity-***\ examples目录下有如何在C#中使用模板引擎的简单例子。在.NET中使用时候,需要应用两个程序集,NVelocity.dll 和 Commons.dll,这些文件在NVelocity-***\Build目录下。可以加入nvelocity.properties对模板引擎的一些参数进行配置。

0
相关文章