当前位置: 首页 > 后端技术 > Node.js

velocity的基本使用&&实例讲解

时间:2023-04-03 12:08:00 Node.js

Velocity介绍Velocity是一个基于java的模板引擎(templateengine)。它允许任何人简单地使用模板语言(templatelanguage)来引用java代码定义的对象。在这种情况下,前后端分离其实是一个更合理的选择。Velocity也可以与其他语言结合使用。使用之后,Velocity.js是一个不错的选择,这样就可以依赖nodejs和浏览器环境来实现模板的功能了。什么是速度模板?Velocity模板可以是任何文本文件,只要包含特殊的模板语言(VTL)标签,就可以被Velocity模板引擎解析;Velocity模板的工作机制:Velocity可以获取Java对象的函数的返回值,属性值,用于替换模板文件中的VTL变量标签生成新文件,模板文件的扩展名可以是“.vm”、“.htm”、“.html”、“.asp”、“.sql”等。语法介绍大多数模板引擎都有自己的写法,但花括号{}基本上是它们常用的符号。这里介绍的语法顺序是:变量定义,使用控制语句iffor宏变量等指令,是任何语言都不可或缺的;变量定义与使用变量定义与赋值的基本方法:#set(<$变量名>=<"变量值">)#set($name="Sankhya")##string#set($age=30)##number#set($list=["Sankara",${name},"Shankara"])##array#set($dict=["A":"va","B":234,"C":${value}])##HashTable双引号之间的字符串会被Velocity引擎解释和重新解释;在velocity中使用像$2.5这样的货币标识是没有问题的,因为velocity中的变量总是以大写或小写字母开头。使用:${name},也可以写成:$name。推荐使用前面的写法。例如:你想通过一个变量$vice动态组织一个字符串。杰克是个$vicemaniac。原来的变量是$vicemaniac,现在变成了$vicemaniac,所以Veloctiy不知道你要什么。因此,它应该以规范格式编写:Jackisa${vice}maniac现在Velocity知道变量是$vice而不是$vicemaniac。例如:#set($desc="${name}is${age}yearsold;")执行完这条语句后,$desc的输出值为:Sankhyais30yearsold;同时,需要注意:(1)。Velocity模板中的变量是弱类型的;等号“=”右边的值可以是引用、字符串、数字、Array、Vector、HashTable或表达式;(2).如果等号右边的值“=”的值为null,则左边的变量不会被赋值,仍然保留之前的值;(3).模板中未定义的变量将被视为字符串;(4).模板引擎不会将引用解释为对象的实例变量;例如:$foo.Name将被解释为对象Foo的getName()方法,而不是Foo对象的Name实例变量;$foo.getBar()等价于$foo.Bar;注意:单行注释可以以“##”开头:##这就像注释多行注释#*多行注释*#文档注释:#**文档写法**#控制语句if条件控制语句#if()##statementsegment#elseif()##statementsegment#else##statementsegment#end作为条件,Velocity引擎也支持关系运算符(>,>=,<,<=,!=)和逻辑运算符号(&&->AND,||->OR,!->NOT);“!”用于强制不存在的变量显示为空白。例如页面包含$msg,如果msg对象有值,则显示msg的值,如果没有msg对象,则页面显示$msg字符。这是我们不想要的。为了将不存在的变量或变量值为null的对象显示为空白,只需要加一个“!”即可。在变量名前签名。如:$!msg循环控制#foreach($elementin$list)##yourstatement$velocityCount#enddirective#parse和#includedirective:都是导入的本地模板文件;#parse指令只能导入一个文件,同时导入文件的内容会被Velocity模板引擎解析,也就是将导入文件的内容复制到当前文件;该指令也可以递归调用;#include指令可以导入一个或多个文件,导入多个文件时,可以用逗号分隔;而且,导入文件的内容不会被Velocity模板引擎解析;例如:#include("one.gif","two.txt","three.htm")##不会被模板引擎解释;#include(${file1},${file2},${file3})##不会被模板引擎解释;#parse("server.conf")##将由模板引擎解释;#stop停止模板引擎的执行并返回,对debug很有帮助;Velocity中的转义字符也使用符号“”;这意味着执行"\"将输出"",而执行"$"会输出“$”,执行“#”会输出“#”;参考:http://bdxnote.blog.163.com/b...http://www.blogjava。net/alexw...http://www.cnblogs.com/likwo/...