velocity map list 数组操作
Velocity生成模板的时候,经常需要使用到map、list对象,然后遍历输出对象的属性值。当你需要遍历的时候记录遍历的步长的时候,可以使用$velocityCount内置变量进行输出。下面demo开始我们的代码之旅吧。
首先我们定义一个javabean实体对象,user定义如下:
publicclass User {privateintid;private String name;publicintgetId(){returnid;}publicvoidsetId(intid){this.id = id;}public String getName(){returnname;}publicvoidsetName(String name){this.name = name;}publicvoidset(intid, String name){this.id = id;this.name = name;}publicUser(intid, String name){this.id = id;this.name = name;}
}
定义的模板文件1.bpmn内容如下所示:
List:#foreach($member in $members)$velocityCount <li>$member.id -$member.name </li>#end <br>Map:#foreach($member in$membersMap.entrySet())<li>$member.key - $member.value.id$member.value.name</li>#endarray:#set($arr=[0..23])
#foreach($foo in [0..23])
$foo
#end
程序代码如下所示:
List<User> list = newArrayList<User>();Map<String, User> map=newHashMap<String,User>();list.add(newUser(1, "a"));list.add(newUser(2, "b"));list.add(newUser(3, "c"));map.put("1", newUser(1, "a"));map.put("2", newUser(2, "b"));map.put("3", newUser(3, "c"));Properties p = newProperties();p.put("file.resource.loader.class","org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader");Velocity.init(p);// 初始化vm模板Template template =Velocity.getTemplate("1.bpmn", "UTF-8");// 初始化上下文VelocityContext context = newVelocityContext();// 添加数据到上下文中context.put("title", "cccc");context.put("name", "a,b,c");context.put("members", list);//使用$velocityCount可以对遍历进行计数context.put("membersMap", map);StringWriter writer = newStringWriter();template.merge(context, writer);writer.close();System.out.println(writer);
输出程序结果部分如下所示:
List:
1 <li>1 - a</li>
2 <li>2 - b</li>
3 <li>3 - c</li>
<br>
Map:
<li>1 - 1a</li>
<li>2 - 2b</li>
<li>3 - 3c</li>
array:
0
1
2
Ok非常完美搞定。
velocity map list 数组操作相关推荐
- js map 排序_数组方法写给女友的一系列 JS 数组操作(建议收藏 | 内附思维导图)...
前言 最近和女友,咳咳...(说出来可能会被打s)学习JS数组方法,用几个字形容的话就是听说过,实际使用.遇到的时候就分不清具体方法会得到怎样的结果. 今天我将通过这篇文章好好整理一下关于JS数组的方 ...
- 微信小程序——数组操作 (增加删除修改遍历)map、filter、forEach、find的用法、二维数组,排序,求和、指定长度数组赋值
一.数组的操作 Array.push() ->在数组后面继续插入内容 Array.pop() ->拿走数组最后一个内容 Array-shift()->拿走数组的第一个内容 (unsh ...
- go map(映射)的概念、3种创建方式及map的CRUD操作
引入 [1]映射(map), Go语言中内置的一种类型,它将键值对相关联,我们可以通过键 key来获取对应的值 value. 类似其它语言的集合 [2]基本语法 var map变量名 map[keyt ...
- Scala与Java差异(四)之数组操作
一.数组操作之Array.ArrayBuffer以及遍历数组 (1)Array 在Scala中,Array代表的含义与Java中类似,也是长度不可改变的数组.此外,由于Scala与Java都是运行在J ...
- Javascript数组操作
使用JS也算有段时日,然对于数组的使用,总局限于很初级水平,且每每使用总要查下API,或者写个小Demo测试下才算放心,一来二去,浪费不少时间:思虑下,堪能如此继续之?当狠心深学下方是正道. 原文链接 ...
- jq 组装数组_Jquery数组操作
jQuery的数组处理,便捷,功能齐全. 最近的项目中用到的比较多,深感实用,一步到位的封装了很多原生js数组不能企及的功能. 最近时间紧迫,今天抽了些时间回过头来看 jQuery中文文档 中对数组的 ...
- Ruby 数组操作(和 Python3 列表+元组+集合 对比)
本来是想写到 Ruby 学习笔记一块的,但是数组操作这块的内容也太多了,所以单独提取出来了.Ruby 里没有单独的集合的概念,或许是因为数组就已经足够涵盖了这些了.所以,话不多说,直接上菜(为了对比明 ...
- ES6(迭代器、Set、Map、数组去重)
目录 迭代器Iterator Iterator 的作用 原生具备 Iterator 接口的数据结构 Iterator 的遍历过程 迭代器实现了Iterator接口,只要实现了Iterator就可以使用 ...
- nodejs 数组操作
数组操作 map 通过指定函数处理数组的每个元素,并返回处理后的数组. map() 方法会将数组中元素依次传入方法中,并将方法的返回结果组成新数组返回. 传入的function可以有自己的三个形参,c ...
最新文章
- NUnit学习笔记之进阶篇
- 【Verilog HDL 训练】第 07 天(串并转换)
- Bootstrap 学习笔记4 巨幕页头略缩图警告框
- 自定义View 进度条
- Linux C语言实现ls -l
- 7 操作系统第二章 进程管理 进程同步与互斥
- c语言二叉树_linux学习第20节,二叉树的特性和插入、查询、删除等基本操作
- log4j.xml的实用例子
- python汉化版编辑器_Thonny(Python编辑器)
- dotween上下摆动_DOTWeen插件使用技巧
- java mina 框架 获取字节_浅谈Java的Mina框架传递对象
- 企业正确导入BPM系统要注意什么
- OneNET麒麟座应用开发之三:获取温湿度数据
- D*(Dynamic A*) 算法详细解析
- 浅谈防火墙、IDS和IPS之间的区别
- Mybatis源码解析《一》
- 数据可视化之象形标识图,简约百变的数据视觉展现形式
- Android学习:线程同步之synchronized
- CSS3系列视频教程,从入门到精通
- W5100S-EVB-Pico [Micropython] – MQTT
热门文章
- OpenCV2:Mat介绍及常见用法
- python读压缩文件内容_使用Python读写及压缩和解压缩文件的示例
- linux 单用户模式 挂载u盘_(原创)Linux文件系统只读Read-only file system的快速解决方法...
- websocket.onmessage回调没反应_等待A股暴跌回调补四缺口倒计时第二十四天——8月19日总结...
- kinnect face tracking大概流程
- DE13 Finding Particular Solutions to Inhomogeneous ODEs
- 基于卷积神经网络的大豆病害识别
- 随机向量x的协方差阵_【科普】如何正确理解特征值与特征向量
- 数据缺失,如何智能修复?第一名方案源码分享
- Keras 实现 LSTM时间序列预测