• Velocity入门总结


      Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象 ,开发的目标是分离 MVC 模式中的持久化层和业务层。 当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。

      Velocity脚本语法摘要(velocity中大小写敏感

     在 Velocity 中所有的关键字都是以 # 开头的,而所有的变量则是以$开头

    1. 变量${name} ,也可以写成:$name。提倡用前面的写法。

     

    变量的赋值 : $name="hello"

     赋值的左边必须是一个变量或者是属性引用

    右边可以是六种类型之一: 变量引用,字面字符串,属性引用,方法引用,字面数字,数组列表

     

    下面的例子演示了上述的每种类型:

    #set( $monkey = $bill## 变量引用

    #set( $monkey.Friend = "monica" ) ## 字面字符串

    #set( $monkey.Blame = $whitehouse.Leak ) ## 属性引用

    #set( $monkey.Plan = $spindoctor.weave($web) ) ## 方法引用

    #set( $monkey.Number = 123 ) ## 字面数字

    #set( $monkey.Say = ["Not", $my, "fault"] ) ## 数组列表

     

    注意:①如果上述例子中的右值是null, 则左值不会被赋值,也就是说会保留以前的值

       ②velocity模板中未被定义的变量将被认为是一个字符串

       ③velocity模板中不会将reference解释为对象的实例变量

    例如:

      $foo.name将被解释为Foo对象的getName()方法,而不是Foo对象的name实例变量。

    $foo.getBar() 等同于$foo.bar ;

    data.getRequest().getServerName() 等同于  $data.request.serverName  等同于${data.request.serverName}

    2. 循环

        #set( $list = ["pine", "oak", "maple"])

    #foreach ($element in $list)

      This is $element.

           $velocityCount (据说可以得到循环次数,但是每次试验都没成功过)

    #end

    输出的结果为:

    1 This is pine.

    2 This is oak.

    3 This is maple.

    每次循环$list中的一个值都会赋给$element变量。

    $list可以是一个Vector、Hashtable或者Array。分配给$element的值是一个java对象,并且可以通过变量被引用。

    如果$list 是一个HashMap,则可以

    #foreach ( $key in $list.keySet())

      Key: $key 

      Value: $list.get($key) <br>
    #end

    参考资料:

      使用 Velocity 模板引擎快速生成代码

      Velocity开发教程

       Velocity语法

  • 相关阅读:
    2019年3月6日 980. Unique Paths III
    2019年3月05日 961. N-Repeated Element in Size 2N Array
    2019年3月4日 701. Insert into a Binary Search Tree
    2019年3月1日 804. Unique Morse Code Words
    2019年2月28日 654. Maximum Binary Tree
    2019年2月26日 Unique Email Addresses、To Lower Case、Encode and Decode TinyURL
    Nexus Repository Manager 3 远程命令执行漏洞(CVE-2020-10199)复现
    常见的Web源码泄漏漏洞及其利用
    Nmap-脚本检测CVE漏洞
    Vulnhub-dpwwn-01靶机过关记录
  • 原文地址:https://www.cnblogs.com/liuniansishui/p/8074637.html
Copyright © 2020-2023  润新知