【Elasticsearch】Bboss-Velocity

欧阳正谊
2023-12-01

前言:

今天看bboss的xml文件,要用bboss的查询检索功能,结果有一些东西看不懂,问了尹标平大佬果然是用了velocity,那就看看学习学习吧,万一以后我维护Bboss源码了呐,时刻准备着、不行就再(pao)学(lu)

Velocity

       是MVC架构的一种实现;基于java的模板引擎,允许任何人使用简单而强大的模板语言来引用定义在Java代码中的对象。

  页面设计人员可只关注页面的显示效果,java程序开发人员关注业务逻辑编码。Velocity将java代码从web页面中分离出来,这样为web站点的长期维护提 供了便利,同时也为我们在JSP和PHP之外又提供了一种可选的方案。

大概流程:

后台提供数据,vm显示、编辑数据(和freemaker差不多但是不一样,freemaker要强大些)写到这里就不想写了,分享这个链接吧,写到很好

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

Velocity教程

Velocity教程2

还是看一下veloctiy语法吧,是不是很freemaker差不多

/**
* Created by Administrator on 2018/4/28.
*/
<html>
   <body>
      <pre>
       Hello Lily Velocity
      
          username:$!{username}
          User:${user.name}
          User:${user.age}
      
          method:${user.getName()}
          method2:${user.setName("50")}
          method3:${user.getName()}
      
          <input type="text" name="email" value="$email"/> ##$email
          <input type="text" name="email" value="$!email"/> ##没有值时空字符串
          <input type="text" name="email" value="$!{email}"/>
      
          $foo.Bar == $foo.getBar()
          $data.setUser("jon") == #set($data.User = "jon")
      
          $data.getRequest().getServerName() == $data.Request.ServerName==${data.Request.ServerName}
      
          #set($user.age=18)
          age:$(user.getAge())
      
          ## 解析和呈现包含在双引号字符中的字符串文字
          ##单引号字符中时,将不会被解析
          #set($directoryRoot="www")
          #set($templateName="velocity.vm")
          #set($template = "$directoryRoot/$templateName")
          $template
      
          #if($user)
              <strong>Velocity!</strong>
          #end
      
          $set($foo=10)
          #if($foo<10)
              **GO NORTH**
           #elseif($foo == 10)
              **GO EAST**
           #elseif($bar ==6)
              **Go south**
           #else
              **Go west**
          #end
      
          ##loops循环
          #foreach($color in $colors)
              Color $!{foreach.index}/$!{foreach.count}:$!{color}
          #end
      
          #foreach($key in $map.keySet())
              Number $!{foreach.index}/$!{foreach.count}:$!{key} $map.get($key)
          #end
      
          ##include包含:导入本地文件,title不会填充hello.vm
          #set($title="FastNews")
          Include:#include("hello.vm")<br>
      
          ##parse:导入包含VTL的本地文件
          ##在TEMPLATE_ROOT下,会使用一个参数,填充hello.vm
          #parse("hello.vm")
      
          #set($sourcel="abc")
             #set($select = "1")
             #set($dynamicsource = "$sourcel$select")
             #evaluate($dynamicsource)##显示的是abc而不是abc1.
      
        </pre>
   </body>
</html>


 类似资料: