折腾个velocity的显示问题折腾了一天..
一.遍历个map类型
1.先看后台java程序
- Map<String,String> paramValues=new HashMap<String, String>();
- ***
- *** 中间赋值操作省略了
- ***
-
data.put("paramValues", paramValues);
- Map<String,String> paramValues=new HashMap<String, String>();
- ***
- *** 中间赋值操作省略了
- ***
-
data.put("paramValues", paramValues);
Map<String,String> paramValues=new HashMap<String, String>();
***
*** 中间赋值操作省略了
***
data.put("paramValues", paramValues);//传值给velocity
2.前台velocity模板文件中取出这个map的key和value
-
- #foreach($param in ${paramValues.keySet()})
- <tr>
- <th>$param</th>
- <td>${paramValues.get($param)}</td>
- </tr>
- #end
- #foreach($param in ${paramValues.keySet()})
- <tr>
- <th>$param</th>
- <td>${paramValues.get($param)}</td>
- </tr>
- #end
#foreach($param in ${paramValues.keySet()})
<tr>
<th>$param</th>
<td>${paramValues.get($param)}</td>
</tr>
#end
二.遍历List类型
1.先看后台java代码
- List<Saler> salerList=new ArrayList<Saler>();
- ***
- ***中间赋值操作省略了
- ***
-
data.put("salerList", salerList);
- List<Saler> salerList=new ArrayList<Saler>();
- ***
- ***中间赋值操作省略了
- ***
-
data.put("salerList", salerList);
List<Saler> salerList=new ArrayList<Saler>();
***
***中间赋值操作省略了
***
data.put("salerList", salerList);//传值给velocity
2.再看velocity模版中代码
- #foreach($sal in ${salerList})
- $sal.name
- #end
- #foreach($sal in ${salerList})
- $sal.name
- #end
#foreach($sal in ${salerList})
$sal.name
#end
ps:这里补充说明一下,velocity中虽然可以用对象,就像这个list泛型中的Saler,但是要求这个Saler必须是public class Saler{xxxxx}的,也就是说不能为内部类..不能是写在别的类里面的 class Saler{xxxxx},而且这个类的成员变量要有get,set方法,不然就取不出来..具体为啥..不清楚..等待有经验的哥们解释一下~~
分享到:
相关推荐
本篇文章将详细解析如何在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>`用于遍历集合,`<#foreach>`用于常规迭代。 - **指令**:如`<#assign>`分配变量,`<#include>`包含其他模板,`<#function>`定义函数。 - **注释**:`<!--...-->`为HTML注释,`...
在Java中,Freemarker与ModelAndView、Velocity等模板引擎类似,它通过模板语言(Template Language)来描述数据如何被渲染。下面我们将详细探讨如何使用Freemarker来导出Excel、Word和HTML。 1. **导出Excel** - ...
例如,`${list}" var="item">`会遍历名为`list`的集合,并为每个元素创建一个新的行。 其次,**数据封装**是将业务数据与模板关联的关键步骤。开发者需要创建一个Java对象或Map,其中包含了模板需要的所有数据。...
- **WeakHashMap**:一种特殊类型的 Map,其中键是弱引用。 - **Vector**:类似于 ArrayList,但线程安全。 - **Stack**:继承自 Vector,实现了一个后进先出(LIFO)栈。 - **Queue**:一种特殊的集合,实现了先进先...
在这个源码中,可能使用了DOM解析器来加载XML文件,然后遍历DOM树,获取每个新闻条目的信息。例如,使用Java的JDOM库,代码可能如下: ```java import org.jdom2.Document; import org.jdom2.Element; import org....
- **List**:有序集合,允许重复元素,如ArrayList。 - **Set**:不允许重复元素的集合,如HashSet。 - **Map**:键值对映射关系,如HashMap。 - **迭代器**:遍历集合的工具。 #### 8. 状态模式与客户端连接 - **...
5. **Iterative Tags**: `<s:iterator>`标签用于遍历集合,如List、Map等,是循环渲染数据的关键。 6. **Input Tags**: 包括`<s:textfield>`、`<s:password>`、`<s:textarea>`等,用于创建表单输入元素,并能自动...
Mybatis 中的 foreach 标签是一个功能强大的工具,允许开发者在 SQL 语句中循环遍历集合对象。但是,在使用 foreach 标签时,经常会遇到空格、换行、回车问题,这些问题会导致 SQL 语句执行失败或返回错误的结果。 ...
- `iterator`: 迭代集合,支持List、Set、数组和Map。`id`属性指向集合中的元素,`status`属性指向IteratorStatus实例,提供关于迭代状态的方法,如获取索引、判断是否为偶数或奇数等。 - `merge`: 类似于`append`...
例如,`<#if condition>` 和 `<#else>` 用于条件判断,`<#list items as item>` 用于遍历列表。变量引用通常用 `${expression}` 表示,其中`expression`可以是任何返回值的表达式。 2. **数据模型** 在Freemarker...
1. **DOM解析器**:DOM将整个XML文档加载到内存中,创建一个树形结构,允许程序遍历和修改XML节点。在使用模板时,你可以预先定义一个XML结构作为模板,然后使用DOM API填充数据。例如: ```java ...
在循环中,每个查询结果映射为一个Map对象,通过`map.get()`方法获取字段值,并添加到XML字符串中。 4. **写入文件**: 当XML字符串构建完成后,可以将其写入到文件系统中。这部分代码在提供的示例中没有展示,但...
- **读取数据**: 通常,我们会遍历所有行和单元格,读取数据并存储到合适的数据结构中,如List或Map。 - **写入数据**: 可以先构建好数据结构,然后根据需要填充到Excel的工作表中。 - **高级功能**: 包括处理...