`
j1310544159
  • 浏览: 2555 次
社区版块
存档分类
最新评论

【原创】velocity实用语法详解

阅读更多



    注:  语法中相关基础语法请查阅百度获取,此文章仅针对应用性讲解。

 

   一、注释,在页面中不做任何显示,包括查看源代码

          1.单行注解

              eg: ## 这是一个单行注解

          2.多行注解

              eg:
                   #* 
                      这是一个多行注解 
                   *#

 

  二、#set,当前页面赋值不做演示,仅演示后台传值

 前提:1.Controller传值 modelAndView.addObject("query", testBean);-----定义参数名query

               的testBean对象传于前端。

                   2.testBean结构(详细代码省略)

                      private Map<String,String> criteria;   ----- 属性

                   3. 赋值情况(详细代码省略)

                      criteria.put("name","xiaoming");   --- name赋值xiaoming
                      criteria.put("address","北京市");  --- address赋值北京市

        eg:

         -------代码-------

           #set( $result = $query.criteria.get("name") )       --- 获取name值,存在
           The result of the first query is $!result                  

           <br>
           #set( $result = $query.criteria.get("address") )   --- 获取address值,存在
           The result of the second query is $!result
           <br>
           #set( $result = $query.criteria.get("nothing") )      --- 获取nothing值,不存在
           The result of the third query is $!{result} ==$!result  

           <br>

           #set( $resultOther = $query.criteria.get("nothing") )  --- 无叹号演示
           The result of the fourth query is $resultOther
           <br>
-------页面展示结果-------:

         The result of the first query is xiaoming 
           The result of the second query is 北京市 
           The result of the third query is 北京市         ---未获取到nothing值,赋值失败,调用原来值

           The result of the fourth query is $resultOther

 

        注:   1.$!result ---- $result---- 叹号使用,若值不存在的返回结果""  ---- "$result";

                  2.$!{result} ==$!result  语句一样

                  3.引用参数查找顺序

                      $customer.address 引用时,查找顺序是:
                      1. getaddress()
                      2. getAddress()
                      3. get(“address”)
                      4. isAddress()
                   对于VTL中大写的属性名Address 引用,将是:
                      1. getAddress()
                      2. getaddress()
                      3. get(“Address”)
                      4. isAddress()

 

 

  三、#literal ,直接输出文字 不执行内部代码

        eg:

         -------代码-------

 

 #literal()
     #foreach ($woogie in $boogie)<br>
           &nbsp;&nbsp;nothing will happen to $woogie<br>
     #end

#end

        -------页面展示结果-------:

 #foreach ($woogie in $boogie)
          &nbsp;&nbsp;nothing will happen to $woogie
 #end

 

  四、循环(包含#foreach,#if,数组等知识点用法 )

 

前提:1. Controller传值 modelAndView.addObject("boogie", listTestBean);定义参数名boogie

               的listTestBean集合传于前端。

                  2. testBean结构----- 属性(详细代码省略)

                      private Map<String,String> criteria;
                      private String woogie;
                      private String[] shuzu_s;                    

                  3. 赋值情况(详细代码省略)

                     List<TestBean> listTestBean=new ArrayList<TestBean>();
                     for (int i = 0; i < 5; i++) {
                           TestBean testBean =new TestBean();
                            testBean.setWoogie("循环第"+i+"个");
                            String[] shuzu ={ i+"数组_1",i+"数组_2"};
                            testBean.setShuzu_s(shuzu);
                            listTestBean.add(testBean);
                    } 

        eg:

         -------代码-------

                    #foreach ($woogie in $boogie)           ##------ 循环1 ------
                           #if($velocityCount!=2)          ---- if演示 $velocityCount:获取当前索引
                                $velocityCount/$boogie.size()&nbsp;&nbsp;nothing will happen

                                to $!{woogie.woogie}==$!woogie.woogie
                                <br>
                                &nbsp;&nbsp;其中当前对象的数组为:
                                #foreach ($shuzu in $woogie.shuzu_s)
                                      ${velocityCount}、$shuzu
                                       #if($velocityCount!=$woogie.shuzu_s.size())        

                                        ,        ##------ 如果不是最后一个,添加逗号 ------

                                       #end
                                #end
                                <br>
                            #end
                      #end

       ------页面展示结果-------:
                     1/5  nothing will happen to 循环第0个==循环第0个
                        其中当前对象的数组为: 1、0数组_1 , 2、0数组_2
                     3/5  nothing will happen to 循环第2个==循环第2个
                        其中当前对象的数组为: 1、2数组_1 , 2、2数组_2
                     4/5  nothing will happen to 循环第3个==循环第3个 
                        其中当前对象的数组为: 1、3数组_1 , 2、3数组_2
                     5/5  nothing will happen to 循环第4个==循环第4个
                        其中当前对象的数组为: 1、4数组_1 , 2、4数组_2 

-------代码------- 

#foreach( $foo in [1..5] )                ##------ 循环2 ------
 $     foo<br>
#end

 -    ------页面展示结果-------:

1
2
3
4
5

  五、#macro ---宏定义(网上查阅,建议尽量少用)

1、定义:
      #macro (<宏的名称> [$参数1] [参数2] ...)
          ##statement segment
      #end
2、调用:
#<宏的名称>([<参数1>] [<参数2>] ...)

 

-------代码------- 

#macro (tableRow $color $tdCotent)
    <tr  style='background-color: $color;'><td>$tdCotent</td></tr>
#end
<table>
    #tableRow("red","第一个")
    #tableRow("green","第二个")
</table>

 

 ------页面展示结果-------:

 


 

  • 大小: 602 Bytes
分享到:
评论

相关推荐

    velocity语法

    ### Velocity 语法详解 #### 1. 变量 ##### 定义 在 Velocity 模板语言中,变量可以通过 `#set` 指令进行定义。这些变量是弱类型的,意味着无需事先指定数据类型即可直接使用。例如: ```velocity #set($name = ...

    velocity语法与使用方法

    ### Velocity语法与使用方法 #### 1. 变量定义与引用 Velocity允许在模板中定义变量,并在后续使用中引用这些变量。变量定义通常使用`#set`指令进行: - 示例:`#set($name="hello")`,定义了一个名为`$name`的...

    velocity_语法教程

    ### Velocity 语法教程知识点详解 #### 一、`include`与`parse` - **功能介绍**:`include`和`#parse`都是用于在Velocity模板中引入其他模板文件的功能。这两种方式都允许开发者将公共部分(如头部或脚部)抽取...

    velocity语法,涉及其常用规整

    Velocity 语法详解 Velocity是一种基于Java的模板引擎,用于生成Web页面的模板语言。它具有灵活的语法结构和强大的功能,广泛应用于Web开发中。本文将详细介绍Velocity的语法规则和使用方法。 变量 在Velocity中...

    velocity基本语法

    ### Velocity基本语法详解 #### 一、变量 **1.1 变量的定义** 在Velocity模板语言中,变量的定义使用`#set`指令。Velocity支持弱类型的变量定义,这意味着在定义变量时无需指定其数据类型。例如: ```velocity #...

    velocity语法 velovity包

    # Velocity语法与Velocity包详解 Velocity是一个强大的Java模板引擎,它的设计目标是让开发者能够将显示逻辑从应用程序的业务逻辑中分离出来。Velocity通过提供一个简单的模板语言,使得非程序员如网页设计师也能...

    Velocity语法笔记

    ### Velocity 语法笔记 #### 一、Velocity 概述与基本用法 Velocity 是一个基于 Java 的模板引擎,主要用于 Web 应用程序中生成动态页面。它提供了丰富的语法支持,使得开发者可以更轻松地处理数据并将其转换为...

    \velocity语法

    ### Velocity 模板引擎语法详解 #### 一、引言 Velocity 是一款基于 Java 的模板引擎,它将模板设计与 Java 代码分离,使得 Web 页面的设计更加灵活且易于维护。Velocity 通过一种简单的模板语言(Template ...

    velocity中文资料以及实例详解

    总的来说,Velocity通过其直观的VTL语法和丰富的指令集,使得动态内容的生成变得简单易懂,适合网页设计师和开发人员共同协作。它的灵活性和可扩展性使其在生成各种类型的输出文件时都表现出色,不仅限于网页,还...

    Velocity 语法

    ### Velocity 语法详解 #### 1. 变量 **1.1 变量的定义** Velocity中的变量采用弱类型的方式定义,这意味着在定义变量时无需指定其数据类型。使用`#set`指令来设置变量的值。例如: ```velocity #set($name = ...

    velocity插件

    【 Velocity 插件详解】 Velocity 是一款基于 Java 的模板引擎,它被广泛应用于 Web 开发中,特别是作为 Apache Struts 和 Spring MVC 框架的一部分。Velocity 插件则是为了在开发环境中提供对 Velocity 模板语言的...

    velocity总结

    #### 二、Velocity 基础语法详解 ##### 2.1 Velocity 标记符号详解 - **“#”号的使用**:“#”号用于标识 Velocity 脚本中的各种语句,包括但不限于条件语句(`#if`, `#else`, `#end`)、循环语句(`#foreach`, `...

    myeclipse的velocity插件

    ** Velocity 插件详解 ** Velocity 是一个基于 Java 的模板引擎,它允许开发者将静态文本与 Java 代码相分离,从而使得网页设计更加简洁、易维护。在 Web 开发领域,Velocity 被广泛用于生成动态内容,尤其在 ...

    velocity(eclipse插件)

    **Velocity Eclipse 插件详解** Velocity 是一个基于 Java 的模板引擎,它被广泛用于Web开发中的视图层,尤其在Apache Struts 和Spring MVC等框架中。然而,为了方便Java开发者在Eclipse集成开发环境中更好地利用...

    velocity-1.6.zip

    2. **velocity-tools*.jar**(如果有):Velocity工具集,提供了一些实用工具和集成框架的支持,如Spring、Struts等。 3. **velocity-docs**:Velocity的帮助文档,包括用户指南、开发者指南和API文档,帮助开发者...

    velocity简介

    #### Velocity语法详解 Velocity的语法简洁且直观,主要由以下几个关键部分组成: 1. **变量定义与赋值**:使用`#set()`指令来定义变量。例如,`#set($admin="admin")`定义了一个名为`$admin`的变量,并将其值设置...

    velocity使用

    **三、Velocity语法详解** - **#set指令**:用于设置变量的值,如`#set($var = "value")`,可以设置任何表达式的结果为变量的值。 - **#if/#else/#end**:条件语句,用于根据条件执行不同的模板片段。 - **#foreach...

Global site tag (gtag.js) - Google Analytics