当前位置:  开发笔记 > 编程语言 > 正文

Velocity命名宏的参数

如何解决《Velocity命名宏的参数》经验,为你挑选了1个好方法。



1> Will Glass..:

从Velocity 1.6开始,不支持可选参数或命名参数.最近提交了一个使用此功能的补丁,因此我们可能会在将来的版本中看到它.

在此期间,请考虑传入列表或值映射.例如,您可以按如下方式传递参数图(需要Velocity 1.5或更高版本):

#macro(myMacro $p)
  item 1: $p.param1
  item 2: $p.param2
#end

#set($params = {"param1" : "val1", "param2":"val2"})
#myMacro($params)

显示:

item 1: val1
item 2: val2

要处理可选参数,请在宏中使用#if来检查参数.向地图添加新元素有点乱.由于Java方法"put"返回一个值,因此必须使用#set来处理返回值.(否则它会显示在生成的文本中).

#macro(myMacro $p)
  #if(!$p.param1)#set($dummy = $p.put("param1", "default1"))#end
  #if(!$p.param2)#set($dummy = $p.put("param2", "default2"))#end
  #if(!$p.param3)#set($dummy = $p.put("param3", "default3"))#end

  item 1: $p.param1
  item 2: $p.param2
  item 3: $p.param3
#end

#set($params = {"param1" : "val1", "param2":"val2"})
#myMacro($params)

显示器

item 1: val1
item 2: val2
item 3: default3

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有