`
michaellou
  • 浏览: 54714 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Velociy 1.6的新特性,记录一下

SUN 
阅读更多
Velociy 1.6,其中新增了一些非常有用的指令和功能,并修复了一些bug,用起来的确方便多了。
ADD:表示是新增的功能

TYPE    CHANGE eg.   
ADD 增加#define指令 定义可以引用的VTL渲染块 #define( $foo )Hello, $bar!#end
#set( $bar = 'world')
$foo 输出: Hello, world!   
ADD 增加可以跳出#foreach循环的#break指令 #foreac($a in $list)
  #if($a==1)
     #break
  #end
#end   
ADD 增加#foreach指令中使用的VTL语法变量 $velocityHasNext判断是否还有下一个元素 #foreach( $customer in $customerList )

    $customer.Name #if( $velocityHasNext ), #end

#end

  配置:

directive.foreach.counter.name = velocityCount

directive.foreach.iterator.name = velocityHasNext   
ADD 允许模板中使用数组时当做List来使用,意味着可以使用list的方法 $myarray.isEmpty()

$myarray.size()

$myarray.get(2)

$myarray.set(1, 'test')   
ADD 支持模板上调用变参数方法 对于public void setPlanets(String... planets)
或者 public void setPlanets(String[] planets)
模板上可以这样调用:
$sun.setPlanets('Earth', 'Mars', 'Neptune')

$sun.setPlanets('Mercury')

$sun.setPlanets()   
ADD 增加严格引用检查设置,必须在#set或者context中设置的变量才能使用,否则会抛出exception(可配置开启关闭) 如果$foo不存在,并且严格引用检查开启

$foo                         ## Exception

#set($bar = $foo)            ## Exception

#if($foo == $bar)#end        ## Exception

#foreach($item in $foo)#end  ## Exception   
ADD 增加模板上定义map #set( $monkey.Map = {"banana" : "good", "roast beef" : "bad"}) ## Map

  使用:

    $monkey.Map.get("banana")

  或  $monkey.Map.banana   
ADD 增加#literal指令来指定大块的不需要进行渲染的内容(类似于\(escaping)的多行版本用法) 模板中:

#literal()

#foreach ($woogie in $boogie)

  nothing will happen to $woogie

#end

  则输出:

#foreach ($woogie in $boogie)

  nothing will happen to $woogie

#end

 

 

 

#end   
ADD 增加#evaluate指令在模板渲染时动态执行字符串(类似于JS中的eval()方法) #set($source1 = "abc")

#set($select = "1")

#set($dynamicsource = "$source$select")

## $dynamicsource is now the string '$source1'

#evaluate($dynamicsource)


0
0
分享到:
评论

相关推荐

    velocity开发必备(中文指南+精通Velociy)

    velocity开发必备(中文指南+精通Velociy) 附件包含《Velocity模板使用指南中文版》和《精通Apache Velocity》

    javaWeb应用开发之velocity模板使用

    velociy模板引擎介绍,使用example,demo。开发教程。

    node-v8.8.1-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    SSM+easyUI搭建简易的人事管理系统内含源码以及说明书可以自己运行复现.zip

    SSM+easyUI搭建简易的人事管理系统内含源码以及说明书可以自己运行复现.zip

    RoyalOnline.apk

    RoyalOnline.apk

    node-v9.9.0-darwin-x64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    TCABEE 008-2020 轨道交通车站高效空调系统技术标准.docx

    TCABEE 008-2020 轨道交通车站高效空调系统技术标准.docx

    2024-2030中国WiFi连接洗衣机市场现状研究分析与发展前景预测报告.docx

    2024-2030中国WiFi连接洗衣机市场现状研究分析与发展前景预测报告

    2024年中国乘用车用密封连接器行业研究报告.docx

    2024年中国乘用车用密封连接器行业研究报告

    红外遥控系统原理及单片机软件解码实例.RAR

    单片机学习代码资料

    为工控设备增加温度、时钟显示电路源程序.rar

    单片机学习代码资料

    node-v8.1.0-linux-ppc64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    微信小程序之商城demo+源码+文档说明

    功能 首页 搜索 分类 购物车 个人中心 商品列表 商品详情 订单 地址管理

    2024年中国便捷火锅底料行业研究报告.docx

    2024年中国便捷火锅底料行业研究报告

    PowerBuilder+Base-64加密

    PowerBuilder Base_64加密

    基于Java的在线教育平台的设计与实现.doc

    基于Java的在线教育平台的设计与实现

    node-v4.8.1-x86.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    Numpy随堂练习1.ipynb

    Numpy随堂练习1.ipynb

    2024年中国棒材送料对准系统行业研究报告.docx

    2024年中国棒材送料对准系统行业研究报告

    node-v8.0.0-linux-armv6l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

Global site tag (gtag.js) - Google Analytics