有member对象,属性有email,firstname,lastname
package ch7.example4;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.opensymphony.xwork.ActionSupport;
public class TestVelocity extends ActionSupport ...{
List members=new ArrayList();
Map membersMap=new HashMap();
public TestVelocity()...{
Member m1=new Member();
m1.setEmail("gaoxiang1@tom.com");
m1.setFirstname("gao1");
m1.setLastname("xiang1");
Member m2=new Member();
m2.setEmail("gaoxiang2@tom.com");
m2.setFirstname("gao2");
m2.setLastname("xiang2");
Member m3=new Member();
m3.setEmail("gaoxiang3@tom.com");
m3.setFirstname("gao3");
m3.setLastname("xiang3");
members.add(m1);
members.add(m2);
members.add(m3);
membersMap.put(1, m1);
membersMap.put(2, m2);
membersMap.put(3, m3);
}
public String execute() throws Exception ...{
return SUCCESS;
}
public List getMembers() ...{
return members;
}
public void setMembers(List members) ...{
this.members = members;
}
public Map getMembersMap() ...{
return membersMap;
}
public void setMembersMap(Map membersMap) ...{
this.membersMap = membersMap;
}
}
<html>
<body>
List:
#foreach($member in $members)
<li>$member.email - $member.firstname $member.lastname</li>
#end
<br>
Map:
#foreach($member in $membersMap.entrySet())
<li>$member.key - $member.value.firstname $member.value.lastname</li>
#end
</body>
</html>
使用$velocityCount可以对遍历进行计数
结果:
List:
gaoxiang1@tom.com - gao1 xiang1
gaoxiang2@tom.com - gao2 xiang2
gaoxiang3@tom.com - gao3 xiang3
Map:
1 - gao1 xiang1
2 - gao2 xiang2
3 - gao3 xiang3
分享到:
相关推荐
本篇文章将详细解析如何在Velocity模板中显示和遍历`List`与`Map`数据结构。 首先,我们来看如何在Velocity中遍历`Map`类型的数据。在后台Java程序中,我们创建一个`HashMap`对象`paramValues`并填充数据,然后将其...
3. **#foreach**:循环遍历集合,如`#foreach($item in $list) ... #end`。 4. **#include**:包含其他模板文件。 5. **#parse**:解析并执行指定的模板文件。 6. **#macro**:定义宏,可复用的代码块。 7. **#stop*...
// 处理cellValue,例如存储到List或Map中 } } workbook.close(); fis.close(); ``` 读取Excel数据后,我们可以创建一个Word模板,使用` XWPFDocument `类来代表Word文档。这个模板可以包含占位符,这些占位符将...
List<Map, Object>> list = service.queryKsxxList(1); context.put("ds", list); StringWriter writer = new StringWriter(); velocityEngine.mergeTemplate("/ksxx.vm", "GBK", context, writer); request....
5. 遍历:`<#list>`指令可以用来遍历List或其他集合类型的变量,例如`<#list users as user>`,在循环中可以访问每个用户的属性。 除了以上基础用法,Freemarker还支持更多的高级特性,如宏定义、指令嵌套、模板...
- `<s:iterator>`:遍历集合,如List或Map,用于循环输出。 6. **辅助与控制标签**: - `<s:debug>`:用于调试,显示当前请求的详细信息。 - `<s:div>`:创建一个HTML的`<div>`块。 - `<s:push>`:将值推入栈中...
例如,`${list}" var="item">`会遍历名为`list`的集合,并为每个元素创建一个新的行。 其次,**数据封装**是将业务数据与模板关联的关键步骤。开发者需要创建一个Java对象或Map,其中包含了模板需要的所有数据。...
- `iterator`: 迭代集合,支持List、Set、数组和Map。`id`属性指向集合中的元素,`status`属性指向IteratorStatus实例,提供关于迭代状态的方法,如获取索引、判断是否为偶数或奇数等。 - `merge`: 类似于`append`...
5. **Iterative Tags**: `<s:iterator>`标签用于遍历集合,如List、Map等,是循环渲染数据的关键。 6. **Input Tags**: 包括`<s:textfield>`、`<s:password>`、`<s:textarea>`等,用于创建表单输入元素,并能自动...
XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,它以其结构化、自解释性和可扩展性而被广泛应用于各种领域,包括Web应用程序中的数据存储和交换。在这个“Xml做数据源模板显示新闻的源码”...
例如,`<#if condition>` 和 `<#else>` 用于条件判断,`<#list items as item>` 用于遍历列表。变量引用通常用 `${expression}` 表示,其中`expression`可以是任何返回值的表达式。 2. **数据模型** 在Freemarker...
- 例如,创建`html.ftl`,包含HTML标签、CSS类和JavaScript引用,然后用`<#list>`标签迭代数据,插入到HTML元素中。 - Java代码中,配置Freemarker后,直接将数据模型与模板合并,生成的HTML可以直接在浏览器中...
- **循环结构**:`<#list>`用于遍历集合,`<#foreach>`用于常规迭代。 - **指令**:如`<#assign>`分配变量,`<#include>`包含其他模板,`<#function>`定义函数。 - **注释**:`<!--...-->`为HTML注释,`...
- **HashTable**:实现了 Map 接口,但不允许 null 键和值。 - **WeakHashMap**:一种特殊类型的 Map,其中键是弱引用。 - **Vector**:类似于 ArrayList,但线程安全。 - **Stack**:继承自 Vector,实现了一个后进...
1. **DOM解析器**:DOM将整个XML文档加载到内存中,创建一个树形结构,允许程序遍历和修改XML节点。在使用模板时,你可以预先定义一个XML结构作为模板,然后使用DOM API填充数据。例如: ```java ...
- **读取数据**: 通常,我们会遍历所有行和单元格,读取数据并存储到合适的数据结构中,如List或Map。 - **写入数据**: 可以先构建好数据结构,然后根据需要填充到Excel的工作表中。 - **高级功能**: 包括处理...
在循环中,每个查询结果映射为一个Map对象,通过`map.get()`方法获取字段值,并添加到XML字符串中。 4. **写入文件**: 当XML字符串构建完成后,可以将其写入到文件系统中。这部分代码在提供的示例中没有展示,但...
- **List**:有序集合,允许重复元素,如ArrayList。 - **Set**:不允许重复元素的集合,如HashSet。 - **Map**:键值对映射关系,如HashMap。 - **迭代器**:遍历集合的工具。 #### 8. 状态模式与客户端连接 - **...
第二章 数值和类型 ................................................................................................. 19 2.1 基本内容 .......................................................................