struts2 遍历Map的多种方法
主要针对以下几种情况的Map:
- private Map<String, String> strMap = new HashMap<String, String>();
- private Map<String, Person> perMap = new HashMap<String, Person>();
- private Map<String, String[]> strArryMap = new HashMap<String, String[]>();
- private Map<String, List<Person>> perLstMap = new HashMap<String, List<Person>>();
下面给出一个示例
1).ExpressMapAction.java
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import com.expre.struts2.bean.Person;
- import com.expre.struts2.bean.Phone;
- import com.opensymphony.xwork2.ActionSupport;
- public class ExpressMapAction extends ActionSupport {
- private static final long serialVersionUID = -4251480679223607716L;
- private Map<String, String> strMap = new HashMap<String, String>();
- private Map<String, Person> perMap = new HashMap<String, Person>();
- private Map<String, String[]> strArryMap = new HashMap<String, String[]>();
- private Map<String, List<Person>> perLstMap = new HashMap<String, List<Person>>();
- //get&set方法,这里都省略了
- @Override
- public String execute() throws Exception {
- // 值为字符串
- strMap.put("first", "zxx");
- strMap.put("second", "lsx");
- strMap.put("third", "wxh");
- // 值为javabean对象
- Person person = new Person("001", "zxx", 22);
- person.setPhone(new Phone("apple", 18957157189L));
- perMap.put("one", person);
- person = new Person("002", "lsx", 25);
- person.setPhone(new Phone("HTC", 18957157187L));
- perMap.put("two", person);
- // 数组处理
- strArryMap.put("arr1", new String[] { "1", "310000", "hz" });
- strArryMap.put("arr2", new String[] { "2", "310001", "xh" });
- strArryMap.put("arr3", new String[] { "3", "310002", "sc" });
- //list对象处理
- List<Person> list=new ArrayList<Person>();
- list.add(new Person("001", "zxx", 22));
- list.add(new Person("002", "lsx", 25));
- perLstMap.put("one", list);
- list=new ArrayList<Person>();
- list.add(new Person("003", "wlx", 26));
- list.add(new Person("004", "hzx", 28));
- perLstMap.put("two", list);
- return "result";
- }
- }
2).strMap.jsp
- <html>
- <body>
- <ul>
- <li>访问Map:<s:property value="strMap"/></li>
- <li>访问Map中某个元素:
- <s:property value="strMap.first"/> |
- <s:property value="strMap['second']"/> |
- <s:property value="strMap[\'third\']"/>
- </li>
- <li>访问Map中所有的key:<s:property value="strMap.keys"/></li>
- <li>访问Map中所有的value:<s:property value="strMap.values"/></li>
- <li>访问容器的大小:
- <s:property value="strMap.size()"/> |
- <s:property value="strMap.size"/>//这是map特别的地方
- </li>
- <li>迭代循环取值,最简单
- <s:iterator value="strMap" id="entry">
- <s:property value="#entry"/>{
- key: <s:property value="key"/>
- value:<s:property value="value"/>}|
- </s:iterator>
- </li>
- <li>迭代循环取值
- <s:iterator value="strMap.keySet()" id="key">
- <s:property value="key"/>或<s:property value="#key"/>:
- <s:if test="strMap[#key]!=null">
- <s:property value="strMap.get(#key)"/> |
- </s:if>
- </s:iterator>
- </li>
- <li>迭代循环取数组值
- <s:iterator value="strMap" id="entry">
- <s:property value="#entry"/>{
- <s:property value="value[0]"/>
- <s:property value="value[1]"/> |
- <s:property value="value[2]"/> }
- </s:iterator>
- </li>
- <li>迭代循环取对象值,最直接:
- <ul>
- <s:iterator value="perMap" id="entry">
- <li>
- <s:property value="#entry"/> {
- ID:<s:property value="value.ID"/>
- Name:<s:property value="value.name"/>
- Age:<s:property value="value.age"/> }|
- </li>
- </s:iterator>
- </ul>
- </li>
- <li>迭代循环取对象的属性值
- <s:iterator value="perMap.keySet()" id="key">
- <s:property value="#key"/>:
- <s:iterator value="perMap.get(#key)">
- <s:property value="ID"/>
- <s:property value="name"/>
- <s:property value="phone.name"/>
- </s:iterator>|
- </s:iterator>
- </li>
- <li>稍复杂的迭代
- <s:iterator value="perLstMap" id="entry">
- <s:set name="total" value="#entry.value.size"/>
- <s:iterator value="#entry.value" status="s">
- <s:if test="#s.first">
- <s:property value="#entry.key"/>:共${total}条
- </s:if> {
- <s:property value="ID"/> |
- <s:property value="name"/> |
- <s:property value="age"/>
- };
- </s:iterator>
- </s:iterator>
- </li>
- </ul>
- </body>
- </html>
相关推荐
本文将深入探讨如何在JSP中将`List`, `Set`, `Map`等集合类型的数据传递到Action,然后再通过`<s:iterator>`标签进行遍历显示。这种方式对于数据的展示和交互具有重要的实践意义。 首先,我们需要了解Struts2的工作...
在这个例子中,`myMap`是Action类中的一个Map属性,`iterator`标签会遍历Map的每个键值对,并使用`s:property`标签显示它们。 接下来,我们讨论如何遍历List。List是一种有序的集合,`iterator`标签通过`status`...
`s:iterator`标签是Struts 2 提供的一个迭代标签,它允许开发者遍历任何可迭代的对象,如数组、集合或Map。在描述中提到的场景,这个标签用于遍历一个数据集,然后为每个元素创建一个`<s:checkbox>`标签。 `s:...
在 Struts2 框架中,`s:iterator` 是一个非常重要的标签,它主要用于遍历集合数据(如数组、列表、映射表等),并且在 JSP 页面上显示这些数据。下面将根据提供的示例代码对 `s:iterator` 在不同场景下的使用进行...
4. <s:iterator></s:iterator>-----用于遍历集合 L: 1. <s:label></s:label>-----只读的标签 M: 1. <s:merge></s:merge>-----合并遍历集合出来的值 O: 1. <s:optgroup></s:optgroup>-----获取...
在Struts2中,我们可以使用OGNL(Object-Graph Navigation Language)表达式语言来遍历Map。 在Struts2中,Map遍历通常在JSP页面上进行,使用OGNL表达式。以下是一个简单的例子: ```jsp <%@ taglib prefix="s" ...
Struts2 框架中的 `s:iterator` 标签是用于遍历集合、数组、Map 或者数据栈中的对象的重要组件。这个标签提供了一种便捷的方式来在 JSP 页面上展示动态数据,使得开发者能够方便地循环遍历并显示元素。下面我们将...
总结,Struts2的`s:iterator`标签是用于循环遍历数据的核心组件,支持多种数据类型和复杂的数据结构。通过`value`属性指定要遍历的数据,`status`属性可以提供关于迭代状态的信息,使得在JSP页面上灵活地处理和展示...
Struts2 框架中的 `s:iterator` 标签是用于遍历集合、数组、Map 或数据栈中的对象的,它提供了强大的迭代能力,能够方便地在JSP页面中展示数据。以下是对 `s:iterator` 标签用法的详细说明: 1. **数组或List遍历**...
除了遍历列表和数组,`<s:iterator>`同样支持遍历Map类型的数据。Map的遍历可以通过直接指定Map的值或者引用数据栈中的Map对象来实现: ```xml <s:iterator value="{'1':'a','2':'b'}" id="id" status="st"> key: ...
- **遍历数组或列表**:`<s:iterator value="{'1','2','3','4','5'}" id='number'>...</s:iterator>` 这个例子中,`siterator` 标签将遍历给定的字符串数组,并为每个元素提供 ID 'number'。 - **利用 status 获取...
Struts2框架中的`s:iterator`标签是用于循环遍历集合数据的重要标签,适用于处理数组、列表、Map等数据结构。下面将详细讲解这个标签的用法及其各种属性。 1. **基本用法** `s:iterator`标签的基础用法是通过`...
通过以上这些方法,Struts2的`<s:iterator>`标签能够灵活地处理Map和List数据,大大简化了JSP页面的数据展示逻辑。了解并熟练运用这些特性,能提高开发效率,让代码更加简洁易读。在实际项目中,根据具体需求进行...
- `<s:iterator>` 用于遍历集合,如ArrayList、Map等,可以循环输出集合中的元素。 H. `<s:head>`, `<s:hidden>`: - `<s:head/>` 在HTML的`<head>`标签中使用,用于生成头部信息。 - `<s:hidden>` 创建一个隐藏字段...
根据提供的文件信息,本文将详细解析Struts2框架中遍历集合的方法,并附带介绍一些常用的Struts2标签使用技巧。 ### Struts2框架简介 Struts2是Apache基金会下的一个开源项目,它是一个用于开发Java Web应用程序的...
在Struts2中,所有的标签都统一在`<s>`前缀下,通过引入`<%@ taglib prefix="s" uri="/struts-tags" %>`就可以在页面上使用这些标签。 **A组标签:** 1. `<s:a>` - 用于创建超链接,与HTML的`<a>`标签类似,可以...
4. `<s:iterator>`:迭代标签,用于遍历集合对象,如List、Map等。例如: ```jsp <s:iterator value="users"> <tr> <td><s:property value="username" /></td> <td><s:property value="email" /></td> </tr> ...
5. **Iterative Tags**: `<s:iterator>`标签用于遍历集合,如List、Map等,是循环渲染数据的关键。 6. **Input Tags**: 包括`<s:textfield>`、`<s:password>`、`<s:textarea>`等,用于创建表单输入元素,并能自动...
在Struts2中,`<input>`标签被广泛用于从前端页面向后端Action传递参数。例如: ```html <input name="userName" type="text" class="input6" size="15"> ``` 这里,`name`属性定义了参数名,这要求在Action中需...
这只是 Struts2 标签库中的一部分,还有许多其他标签,如 `<s:label>`、`<s:radio>`、`<s:select>` 等,它们各自都有特定的用途,帮助开发者更高效地构建动态网页。了解并熟练使用这些标签,可以极大地提升 Struts2 ...