Copyright © 2022-2024 aizws.net · 网站版本: v1.2.6·内部版本: v1.23.3·
页面加载耗时 0.00 毫秒·物理内存 71.9MB ·虚拟内存 1299.8MB
欢迎来到 AI 中文社区(简称 AI 中文社),这里是学习交流 AI 人工智能技术的中文社区。 为了更好的体验,本站推荐使用 Chrome 浏览器。
Java中Velocity遍历Map,主要是以下2个步骤:
map<String, Object> mapData = new HashMap<String, Object>();
mapData.put("id1", 1L);
mapData.put("id2", 2L);
context.put("mapData", mapData);
#foreach($data in $mapData.entrySet())
key:${data.key} value:${data.value}
#end
//User.java public class 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
Map:
#foreach($member in$membersMap.entrySet())
<li>$member.key - $member.value.id$member.value.name</li>
#end
//程序代码Main.java
Map<String, User> map=newHashMap<String,User>();
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();
// 添加数据到上下文中
//使用$velocityCount可以对遍历进行计数
context.put("membersMap", map);
StringWriter writer = newStringWriter();
template.merge(context, writer);
writer.close();
System.out.println(writer);
运行结果:
Map:
<li>1 - 1a</li>
<li>2 - 2b</li>
<li>3 - 3c</li>
Velocity生成模板的时候,经常需要遍历map对象输出对象的属性值。当你需要遍历的时候记录遍历的步长的时候,可以使用$velocityCount内置变量进行输出。
Java中Velocity #set指令是向引擎上下文对象添加属性或对已有属性进行修改。定义#set($变量 = 值)双引号与引号例子#set ($var="helo")test"$var" 返回testh ...