`

Velocity遍历map与遍历list

阅读更多
问题:
向页面传递key与value的组合

1.

1.1 思路,key与value,想到用map
private Map<String,String>  lineBusiness = new HashMap<String,String>() ;
lineBusiness.put("abc","bcd");
lineBusiness.put("dbc","bcd");
lineBusiness.put("gbc","bcd");

velocity中遍历map
#foreach($param in ${lineBusiness.entrySet()}) 
 ${param.key}  ${param.value}
#end


但 key不是按照添加顺序显示的
原因:map的key是hash值,是随机的,不是按照顺序输出的

业务要求,要按照添加顺序显示

1.2

如果要求按顺序输出可以采用
Map<K,V> map = new LinkedHashMap() ;
#foreach($infos in $lineBusiness.entrySet())
${infos.key}  ${infos.value}
#end

按添加顺序显示

1.3
遍历map中的key
#foreach($infos in $lineBusiness.keySet())
${infos}
#end

遍历map中的value
#foreach($infos in $lineBusiness.values())
${infos}
#end

1.4
java中map里面的key是否可以按我们插入进去的顺序输出?
综上,取决于实现map的方式,若为LinkedHashMap,则可以

2.组装key与value为po类

2.1 在已有类的内部定义,即内部类
List<po> list = new ArrayList<po>();
po.setKey("");
po.setValue("");
list.add(po);

velocity中遍历list
#foreach($info in $list)
    $!info.value  $info.key
#end 

确认list已经赋值,但页面没有显示,原因 po 必须 是public 的访问权限,
且 对该 成员变量添加 set get 方法,才可传值到VM中

而 一个类中 只能有一个类是 public的,其余的类都不可以是 public,
即 定义内部类,是不能传值的

2.2 在同包或其他包中定义po类,引用该po类进行实现

效果:正确

这种方式也可以实现,但若属性不是很多的时候,不建议这样做,浪费时间且代码不好维护
分享到:
评论

相关推荐

    velocity显示List与Map的方法详细解析

    本篇文章将详细解析如何在Velocity模板中显示和遍历`List`与`Map`数据结构。 首先,我们来看如何在Velocity中遍历`Map`类型的数据。在后台Java程序中,我们创建一个`HashMap`对象`paramValues`并填充数据,然后将其...

    Velocity之WEB(Object,List,Map)

    3. **#foreach**:循环遍历集合,如`#foreach($item in $list) ... #end`。 4. **#include**:包含其他模板文件。 5. **#parse**:解析并执行指定的模板文件。 6. **#macro**:定义宏,可复用的代码块。 7. **#stop*...

    Java通过POI读取Excel遍历数据,批量生成word文档

    // 处理cellValue,例如存储到List或Map中 } } workbook.close(); fis.close(); ``` 读取Excel数据后,我们可以创建一个Word模板,使用` XWPFDocument `类来代表Word文档。这个模板可以包含占位符,这些占位符将...

    velocity配置

    List&lt;Map, Object&gt;&gt; list = service.queryKsxxList(1); context.put("ds", list); StringWriter writer = new StringWriter(); velocityEngine.mergeTemplate("/ksxx.vm", "GBK", context, writer); request....

    Freemarker使用指南

    5. 遍历:`&lt;#list&gt;`指令可以用来遍历List或其他集合类型的变量,例如`&lt;#list users as user&gt;`,在循环中可以访问每个用户的属性。 除了以上基础用法,Freemarker还支持更多的高级特性,如宏定义、指令嵌套、模板...

    struts2.0 taglib 标签库

    - `&lt;s:iterator&gt;`:遍历集合,如List或Map,用于循环输出。 6. **辅助与控制标签**: - `&lt;s:debug&gt;`:用于调试,显示当前请求的详细信息。 - `&lt;s:div&gt;`:创建一个HTML的`&lt;div&gt;`块。 - `&lt;s:push&gt;`:将值推入栈中...

    jxls导出模板

    例如,`${list}" var="item"&gt;`会遍历名为`list`的集合,并为每个元素创建一个新的行。 其次,**数据封装**是将业务数据与模板关联的关键步骤。开发者需要创建一个Java对象或Map,其中包含了模板需要的所有数据。...

    Freemarker学习归纳

    - **循环结构**:`&lt;#list&gt;`用于遍历集合,`&lt;#foreach&gt;`用于常规迭代。 - **指令**:如`&lt;#assign&gt;`分配变量,`&lt;#include&gt;`包含其他模板,`&lt;#function&gt;`定义函数。 - **注释**:`&lt;!--...--&gt;`为HTML注释,`...

    freemarker导出Excel、Word、HTMLdemo

    在Java中,Freemarker与ModelAndView、Velocity等模板引擎类似,它通过模板语言(Template Language)来描述数据如何被渲染。下面我们将详细探讨如何使用Freemarker来导出Excel、Word和HTML。 1. **导出Excel** - ...

    Xml做数据源模板显示新闻的源码.rar

    在这个源码中,可能使用了DOM解析器来加载XML文件,然后遍历DOM树,获取每个新闻条目的信息。例如,使用Java的JDOM库,代码可能如下: ```java import org.jdom2.Document; import org.jdom2.Element; import org....

    freemarker基础

    例如,`&lt;#if condition&gt;` 和 `&lt;#else&gt;` 用于条件判断,`&lt;#list items as item&gt;` 用于遍历列表。变量引用通常用 `${expression}` 表示,其中`expression`可以是任何返回值的表达式。 2. **数据模型** 在Freemarker...

    struts2-tags-API.rar_struts2 api_struts2 tag api_struts2 tags ch

    5. **Iterative Tags**: `&lt;s:iterator&gt;`标签用于遍历集合,如List、Map等,是循环渲染数据的关键。 6. **Input Tags**: 包括`&lt;s:textfield&gt;`、`&lt;s:password&gt;`、`&lt;s:textarea&gt;`等,用于创建表单输入元素,并能自动...

    Struts2知识点小结-非常实用

    - `iterator`: 迭代集合,支持List、Set、数组和Map。`id`属性指向集合中的元素,`status`属性指向IteratorStatus实例,提供关于迭代状态的方法,如获取索引、判断是否为偶数或奇数等。 - `merge`: 类似于`append`...

    java 通过模板生成 xml

    在Java编程中,生成XML文件是一项常见的任务,特别是在处理数据序列化、配置文件或与Web服务交互时。本文将深入探讨如何使用Java结合XML模板来生成XML文件。 首先,理解XML(eXtensible Markup Language)是一种...

    Java进阶路线

    这两种遍历集合的方式各有优势。`foreach` 更简洁易用,而 `iterator` 则提供了更多的控制选项,例如删除元素等。 **4. 浅拷贝与深拷贝** 浅拷贝只复制对象本身,并不复制对象所引用的对象;深拷贝不仅复制对象...

    顶级IT公司面试题

    - **List**:有序集合,允许重复元素,如ArrayList。 - **Set**:不允许重复元素的集合,如HashSet。 - **Map**:键值对映射关系,如HashMap。 - **迭代器**:遍历集合的工具。 #### 8. 状态模式与客户端连接 - **...

    java生成XML的方法【附demo源码下载】

    在循环中,每个查询结果映射为一个Map对象,通过`map.get()`方法获取字段值,并添加到XML字符串中。 4. **写入文件**: 当XML字符串构建完成后,可以将其写入到文件系统中。这部分代码在提供的示例中没有展示,但...

    Excel文件

    - **读取数据**: 通常,我们会遍历所有行和单元格,读取数据并存储到合适的数据结构中,如List或Map。 - **写入数据**: 可以先构建好数据结构,然后根据需要填充到Excel的工作表中。 - **高级功能**: 包括处理...

    FreeMarker 手册

    FreeMarker 手册 .......................................................................................................... 1 用于 FreeMarker 2.3.18 .......................................................

Global site tag (gtag.js) - Google Analytics