velocity map list 数组操作
2016-04-13 12:57
561 查看
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>
#end
array:
#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非常完美搞定。
相关文章推荐
- 最少换乘
- 第六周项目3—IP地址类
- Unsupported major.minor version 51.0 (unable to load class com.powerlong.plas.filter.SortInfoFilter)
- redis入门及其环境搭建
- 焦点轮播图
- 游戏
- MT6323 PMIC 功能介绍
- spark实战进阶
- Windows下安装Redis教程
- 长方形类
- 第七周项目(1)-成员函数求两点间距离
- spark架构及其工作机制
- POJ 2406 Power Strings
- 第5周项目4-长方柱类
- 动态规划-百度-罪犯转移
- 【BZOJ3514】Codechef MARCH14 GERALD07加强版
- 如何去除Linux文件的^M字符
- spark入门及其环境搭建
- android的Bundle
- 【转】数据库常见面试题