`
pqcc
  • 浏览: 124239 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

velocity 学习笔记

    博客分类:
  • JAVA
阅读更多

1. Velocity中仅有String可以被赋值给变量。
2. 单行注释:## This is a single line comment.
3. 多行注释:
 #*
  Thus begins a multi-line comment. Online visitors won't
  see this text because the Velocity Templating Engine will
  ignore it.
 *#

4. $customer.Address有两种含义。它可以表示:查找hashtable对象customer中以Address为关键字的值;也可以表示调用customer对 象的getAddress()方法。

5. reference的正是格式如下:
 ${mudSlinger} 变量
 ${customer.Address} 属性
 ${purchase.getAddress()} 方法  和属性一样,但是方法可以指定参数,而属性不能。

6. VTL中的reference总是以一个大写或者小写的字母开始。
7. VTL中使用"\"作为逃逸符。
8. 注意:VTL中未被定义的变量将被认为是一个字符串,

9. 赋值左侧的(LHS)必须是一个变量或者属性reference。
 右侧(RHS)可以是以下类型中一种:
 l 变量reference
 l String literal
 l 属性reference
 l 方法reference
 l number literal
 l ArrayList
10. 如果你的RHS是一个null,VTL的处理将比较特殊:它将指向一个已经存在的reference,这对初学者来讲可能是比较费解的。
11. Velocity有AND、OR和NOT逻辑运算符。
 #if( $foo && $bar )
 #if ( $foo || $bar )
 #if ( !$foo )
12. Foreach循环 :
 #foreach ( $product in $allProducts )
   <li> $product </li>
 #end
 如果$product是一个java的Product类,并且这个产品的名字可以通过调用他的getName()方法得到。
 现在我们假设$allProducts是一个Hashtable,如果你希望得到它的key应该像下面这样:
 <ul>
 #foreach ( $key in $allProducts.keySet() )
 <li>Key: $key -> Value: $allProducts.get($key) </li>
 #end
 </ul>

13. Velocity还特别提供了得到循环次数的方法:
 <table>
  #foreach ( $customer in $customerList )
  <tr><td>$velocityCount</td><td>$customer.Name</td></tr>
  #end
 </table>
$velocityCount变量的名字是Velocity默认的名字,你也可以通过修改velocity.properties文件来改变它。默认情况下,计数从"1"开始,但是你可以在velocity.properties设置它是从"1"还是从"0"开始。

13. include

#include script element允许模板设计者引入本地文件。被引入文件的内容将不会通过模板引擎被render。为了安全的原因,被引入的本地文件只能在TEMPLATE_ROOT目录下。
#inclued ( "one.txt" )
如果您需要引入多个文件,可以用逗号分隔就行:
#include ( "one.gif", "two.txt", "three.htm" )
在括号内可以是文件名,但是更多的时候是使用变量的:
#inclue ( "greetings.txt", $seasonalstock )

14. parse
 #parse script element允许模板设计者一个包含VTL的本地文件。Velocity将解析其中的VTL并render模板。
 #parse( "me.vm" )任何由#parse指向的模板都必须包含在TEMPLATE_ROOT目录下。与#include不同的是,#parse只能指定单个对象。
 你可以通过修改velocity.properties文件的parse_direcive.maxdepth的值来控制一个template可以包含的最多#parse的个数――默  认值是10。

15. Stop:
 #stop script element允许模板设计者停止执行模板引擎并返回。把它应用于debug是很有帮助
 e.g: #stop

16. Velocimacros
 #macro script element允许模板设计者定义一段可重用的VTL template。例如:
 #macro ( d )
 <tr><td></td></tr>
 #end
 在上面的例子中Velocimacro被定义为d,然后你就可以在任何VTL directive中以如下方式调用它:
 #d()

17. Velocimacro,一个参数是color另一个参数是array:
 #macro ( tablerows $color $somelist )
 #foreach ( $something in $somelist )
 <tr><td bgcolor=$color>$something</td</tr>
 #end
 #end

分享到:
评论

相关推荐

    velocity学习笔记

    该文档为velocity学习笔记,包含一些常见问题

    velocity学习笔记与struts2整合

    velocity学习笔记与struts2整合 velocity学习笔记与struts2整合 velocity学习笔记与struts2整合

    Velocity语法笔记

    自己学习velocity时用的语法笔记,适合初学者

    velocity笔记

    velocity笔记,自己学习的时候弄的

    velocity学习资料.zip

    Velocity学习资料,从网上找到的其中学习笔记由个人编写,希望大家借鉴,后续继续完善中。

    struts项目学习笔记

    支持更多视图技术(JSP(转译java文件,编译成class文件,才可以运行)、(模板技术,html,把数据和模板html一起以流方式输出)FreeMarker、Velocity) 基于AOP(面向切面编程)思想的拦截器机制,更易扩展(不修改源代码的...

    springboot学习思维笔记.xmind

    springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...

    Vue学习笔记进阶篇之单元素过度

    可以配合使用第三方 JavaScript 动画库,如 Velocity.js 单元素/组件的过度 Vue 提供了 transition 的封装组件,在下列情形中,可以给任何元素和组件添加 entering/leaving 过渡 条件渲染 (使用 v-if) 条件展示...

    淘宝实习笔记--webx学习之旅

    这是在淘宝实习期间,自己记录的一些日常学习的东西。

    大数据读书笔记.docx

    对比《大数据》,结合平时工作和学习的实际情况,我认为最少应该认真思考和解决好三个问题: 大数据读书笔记全文共9页,当前为第2页。 一、提供什么样的数据? 大数据读书笔记全文共9页,当前为第2页。 在中国,...

Global site tag (gtag.js) - Google Analytics