`
我想我是海
  • 浏览: 213670 次
社区版块
存档分类
最新评论

让WebWork遍历Map

阅读更多

用Webwork的标签遍历,是一件很爽的事情。例如遍历一个List。你可以做得比之前任何一套标签更优雅和简单。当遇到Map的时候,可能你会束手无策。因为我也刚好有这样的经历。

如果知道Map里面的Key,使用Key去得到Value那不难做,只需要在遍历的标签里面写上<ww:property value="yourMap['key']"/>即可。但是要把Map里面所有的无素都遍历出来,我查了好多网页都没有答案。最后查了下Webwork in action,发现只有一句话提到Map的遍历,但这句话足以让我找到答案了。原文是:

When iterating over a Map, it
iterates over the Set returned by Map.entrySet(), which is a set of Map.Entry
objects, which in turn has the methods getKey() and getValue() to retrieve the
associated key/value pairs.

译文如下:

当遍历一个Map的时候,它调用Map.entrySet()方法返回一个Set,这个Set是一个Map.Entry对象的集合。这个返回的对象有一个getKey(),getValue()的方法供取得相关的键及值。

发现了有Get方法了。这意味着可以在页面上使用EL直接把Map的键及值取出来了。爽死了。那么,在遍历一个Map的时候,键及值的获得可以这样简单:

<ww:iterator value="yourMap">
        <ww:property value="key"/><ww:property value="value"/>
</ww:iterator>



分享到:
评论

相关推荐

    webwork中上传文件

    `Map map = context.getParameters();`这一行代码从请求中获取所有的参数。然后,我们可以遍历`filesFileName`数组,对每个上传的文件执行操作,例如,将文件重命名为其原始名称,并保存到服务器的某个位置。在这个...

    二级联动(WebWork+泛型)

    4. **视图渲染**:在JSP或FreeMarker模板中,使用WebWork的标签库遍历并展示数据。当一级类别被选择时,通过AJAX发送请求到后台,更新二级子类别列表。 5. **前端交互**:使用JavaScript或jQuery处理前端的事件监听...

    FreeMarker开发指南

    - **与WebWork整合**: FreeMarker可以与其他MVC框架如WebWork、SpringMVC等整合。 5. **高级方法** - **自定义方法**: 可以创建自定义的FreeMarker函数以扩展其功能。 - **自定义Transforms**: 自定义转换器...

    ResultSet转换为List的方法

    此外,该方法还可以与struts和webwork2的标签结合使用,以实现复杂的页面格式输出。 在实际开发中,我们可以根据需要选择合适的方法来将ResultSet转换为List对象,以便更方便地处理和操作数据。同时,我们还需要...

    struts2标签详细讲解

    1. `&lt;s:iterator&gt;`:遍历集合对象,如List、Map等,用于循环输出数据。 2. `&lt;s:inputtransferselect&gt;`:创建可转移选择的输入框,允许用户在两个列表之间移动选项。 K. 下拉框和选择框: 1. `&lt;s:optgroup&gt;`:创建...

    freemarker 语法大全 文档

    - 与WebWork整合:配置Freemarker与WebWork框架的集成。 5. **高级方法**: - 自定义方法:可以扩展Freemarker,创建自定义函数和方法。 - 自定义Transforms:用于转换输出的HTML或其他内容。 6. **数据类型**...

    java freemarker学习文档

    - **与WebWork整合**:配置和使用Freemarker与WebWork框架的集成。 5. **高级方法** - **自定义方法**:创建自定义的Freemarker函数以扩展其功能。 - **自定义Transforms**:自定义转换器以改变输出内容。 在...

    freemarker(语法+实例)

    - **Hash**:键值对集合,对应于Java中的Map,存储键值对数据。 - **Namespace**:命名空间,用于引用某个FTL文件中的资源。 2. **指令** - **If/Else/Elseif**:条件判断语句,用于根据不同的条件执行相应的...

    freemark开发指南

    - **Hash**:键值对集合,类似于Java中的Map,通过键来访问对应的值。 - **Namespace**:命名空间,用于引用一个FTL文件中的资源,方便在模板中进行访问。 2. **指令** - **if, else, elseif**:条件判断,根据...

    Freemarker开发指南

    - `&lt;#list&gt;` 类似于 `&lt;#foreach&gt;`,用于遍历集合或数组。 ##### 5.2 表达式 - **表达式**: - **直接指定值**: 如 `1`, `"Hello"`, `true`。 - **获取变量**: `${varName}`。 - **字符串操作**: 如 `${varName?...

    freemark开发指南(入门)

    - **Hash**:Hash是键值对的集合,类似于Java中的Map。每个键都有一个对应的值,可以通过键来访问值。 - **Namespace**:Namespace用于引用一个FTL文件,使得其他地方可以调用该文件中的资源。 2. **指令** - **...

    freemaker 中文开发手册

    - **Hash (键值对的集合)**:类似于Java中的Map,用于存储键值对的数据结构。 - **Namespace (命名空间)**:用于引用特定的FTL文件,通过这个名称可以访问该文件中的资源。 ##### 2. 核心指令 ###### if, else, ...

    freemarker命令简介

    - **WebWork 集成**:如果使用 WebWork 框架,则需要注意与 Freemarker 的集成。 #### 5. 总结 Freemarker 提供了丰富的功能集,通过各种指令和内置方法支持灵活的文本生成需求。理解这些指令和方法的应用场景对于...

    java必备知识点大全.pdf

    Hashtable与HashMap的区别:Hashtable和HashMap都是Map接口的实现类,Hashtable是线程安全的,而HashMap不是。此外,Hashtable不允许键或值为null,而HashMap可以。 九大隐式对象:JSP中有九个预定义的对象,包括...

Global site tag (gtag.js) - Google Analytics