• Velocity模板语法说明


    Velocity基本语法

    "#"用来标识Velocity的关键字,包括#set、#if 、#else、#end、#foreach、#end、#include、#parse、#macro等;

    "$"用来标识Velocity的变量;如:$i$msg$TagUtil.options(...)等。

    "{}"用来明确标识Velocity变量;比如在页面中,页面中有一个$someonename,此时,Velocity将把someonename作为变量名,若我们程序是想在someone这个变量的后面紧接着显示name字符,则上面的标签应该改成${someone}name。

    "!"用来强制把不存在的变量显示为空白。如:当找不到username的时候,$username返回字符串"$username",而$!username返回空字符串"

    Velocity语法使用

    一、变量定义

    #set($name ="velocity")

    等号后面的字符串 Velocity 引擎将重新解析,例如出现以$开始的字符串时,将做变量的替换。

    二、变量赋值

    #set($hello ="hello $name")

    上面的这个等式将会给$hello赋值为"velocity"

    三、循环

    #foreach($element in $list) 
        <span>$!element</span><br>
    #end

    Velocity引擎会将list中的值循环赋给element变量

    四、条件语句

    条件语句的语法如下:

    复制代码
    #if(condition)
    ...
    #elseif(condition)
    …
    #else
    …
    #end
    复制代码

    五、关系操作符

    Velocity引擎提供了AND、OR和NOT操作符,分别对应&&、||和!例如:

    #if($foo && $bar)
    ...
    #end

    六、宏

    Velocity中的宏可以理解为函数定义。定义的语法如下:

    #macro(macroName arg1 arg2 ...)
    ...
    #end

    调用这个宏的语法是:

    #macroName(arg1 arg2 ...)

    这里的参数之间使用空格隔开,下面是定义和使用Velocity宏的例子:

    #macro(sayHello $name)
        hello $name
    #end
    
    #sayHello("velocity")

    输出的结果为hello velocity

    七、#parse 和 #include

    #parse和#include指令的功能都是在外部引用文件,而两者的区别是,#parse会将引用的内容当成类似于源码文件,会将内容在引入的地方进行解析,#include 是将引入文件当成资源文件,会将引入内容原封不动地以文本输出。分别看以下例子:

     foo.vm文件:

    #set($name = "velocity")

    parse.vm:

    #parse("foo.vm")

    输出结果为:velocity

    include.vm:

    #include("foo.vm")

    输出结果为:#set($name = "velocity")

    八、注释

    单行注释

    ##单行注释

    多行注释

    #*
        多行注释
    *#

    九、单双引号

    单引号不解析引用内容,双引号解析引用内容

    #set ($var="hello")
    
    '$var'  ## 结果为:$var
    "$var"  ## 结果为:hello

    十、属性

    通过'.'操作符使用变量内容

    $Identifier.Identifier
    $user.name
  • 相关阅读:
    javascript你可能不知道的事
    10个经典的Android开源项目(附源码包)
    李嘉诚演讲:打工是最愚蠢的投资
    看成功学·谈成功
    Android程序开发学习笔记系列——基础篇(附源码)
    我的北漂感悟录,程序员你是否也曾有过?!
    版本控制神器GitHub的基本使用与踩坑,教你一铲子填平!
    自动化测试框架为什么选择 Pytest,而不是 Robot Framework?
    接口测试项目实战与经典面试题解析,挑战 BAT 大厂必会!
    Python 测试开发实战课程全面升级,挑战阿里 P6+,年薪 50W+!
  • 原文地址:https://www.cnblogs.com/yaomajor/p/6560068.html
Copyright © 2020-2023  润新知