struts2 遍历Map的N中方法
2011-01-09 22:24
struts2 遍历Map的N中方法
主要针对以下几种情况的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
package com.expre.struts2.action;
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).struts.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"
http://struts.apache.org/dtds/struts-2.0.dtd
">
<struts>
<package name="express" extends="struts-default" namespace="/exp">
<action name="expressMap" class="com.expre.struts2.action.ExpressMapAction">
<result name="result">/jsp/strMap.jsp</result>
</action>
</package>
</struts>
3.web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="
http://java.sun.com/xml/ns/j2ee
" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance
"
xsi:schemaLocation="
http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>/first.jsp</welcome-file>
</welcome-file-list>
</web-app>
4).strMap.jsp
<%@ page language="java" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ taglib uri="/struts-tags" prefix="s"%>
<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>
5).通过url:
http://localhost:8080/struts2Jsp/exp/expressMap.action
访问就会看到输出!
别的不多说,strMap.jsp已经把使用方法都写出来了!
分享到:
相关推荐
Struts2是一个非常流行的...在Struts2中,我们可以使用OGNL(Object-Graph Navigation Language)表达式语言来遍历Map。 在Struts2中,Map遍历通常在JSP页面上进行,使用OGNL表达式。以下是一个简单的例子: ```jsp ...
根据提供的文件信息,本文将详细解析Struts2框架中遍历集合的方法,并附带介绍一些常用的Struts2标签使用技巧。 ### Struts2框架简介 Struts2是Apache基金会下的一个开源项目,它是一个用于开发Java Web应用程序的...
2. **设置请求属性**:然后通过`request.setAttribute`方法将`Vector`对象存储到`request`域中,键名为`Animals`。 3. **使用`<logic:iterate>`标签遍历**:接下来在JSP页面中使用`<logic:iterate>`标签来遍历存储在...
在这个例子中,`myMap`是Action类中的一个Map属性,`iterator`标签会遍历Map的每个键值对,并使用`s:property`标签显示它们。 接下来,我们讨论如何遍历List。List是一种有序的集合,`iterator`标签通过`status`...
本文主要讲解了在Java中如何遍历Map集合,这是在日常编程中经常遇到的一个操作,特别是在需要处理键值对数据时。以下将详细介绍Map集合的遍历方法以及一些相关的知识点。 首先,Map是Java集合框架中的一个接口,它...
遍历Map集合是常见的操作,可以用于打印、处理或检查Map中的数据。下面我们将详细讲解几种遍历Map集合的方法。 首先,我们来看普通Java类中的遍历方式: 1. **遍历键集合**:Map集合提供了keySet()方法,返回一个...
总结来说,Struts2的OGNL遍历Map方法是其强大功能的一部分,它简化了从Action到视图的数据传递过程,使得处理复杂的Java对象和数据结构变得轻松易行。在实际开发中,理解并熟练掌握OGNL的用法,能够显著提升工作效率...
通过以上这些方法,Struts2的`<s:iterator>`标签能够灵活地处理Map和List数据,大大简化了JSP页面的数据展示逻辑。了解并熟练运用这些特性,能提高开发效率,让代码更加简洁易读。在实际项目中,根据具体需求进行...
Struts2框架提供了一种便捷的方式,允许我们在JSP页面上遍历并显示存储在Map中的数据。这篇博客(尽管链接已不可用)可能探讨了如何使用Struts2的迭代器标签来处理嵌套Map的情况。 首先,让我们理解基本概念。`...
本文将重点介绍Struts中几种常用的数据遍历标签及其用法,包括`<logic:iterate>`标签遍历集合、遍历Map以及遍历Map中的Value集合等场景。 #### 遍历集合 **1. 基本用法** 在Struts中,`<logic:iterate>`标签被...
在Struts2框架中,开发Web应用时常常需要在JSP页面与Action之间传递数据,以便于展示或者处理。本文将深入探讨如何在JSP中将`List`, `Set`, `Map`等集合类型的数据传递到Action,然后再通过`<s:iterator>`标签进行...
在Struts2中,也可以使用 `<s:iterator />` 标签遍历Map对象。Map对象中有几对key-value就迭代几次,分别使用 `<s:property value="key"/>` 和 `<s:property value="value"/>` 。 四、iterator的value iterator的...
Struts2标签遍历是Struts2框架中的一个重要组件,用于在JSP页面中遍历集合中的元素。该标签可以遍历数组、集合、Map等数据结构,提供了多种方式来访问和操作集合中的元素。 1. 基本用法 Struts2标签遍历的基本用法...
在intercept方法中,首先获取了ActionInvocation对象,然后获取了参数Map,遍历参数Map,获取每个参数的值,如果参数值是一个字符串数组,则对每个字符串进行trim操作,以删除首尾空格。最后,设置参数Map并执行...
可以通过2种方法遍历HashMap <br>Map map = new HashMap(); <br>for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) { <br> Map.Entry entry = (Map.Entry) iter.next(); <br> Object ...
在Struts2框架中,标签库是其一大特色,它提供了丰富的自定义标签,使得开发者能够更加便捷地创建动态页面。这些标签极大地简化了JSP页面的编写,提高了代码的可读性和可维护性。 1. **Struts2核心标签库**: - `s...
2. **Action类**:在Struts2中,Action类是核心组件,它实现了业务逻辑,并通过execute方法响应用户请求。你可以自定义Action类,实现特定的业务操作。 3. **配置文件**:`struts.xml`是Struts2的主要配置文件,...
### Struts2中Iterator标签的深入解析与应用 在Struts2框架中,`<s:iterator>`标签是一个非常强大的工具,用于在JSP页面上循环遍历集合数据,如列表(List)、数组、Map等。它允许开发者以一种动态且灵活的方式展示...
`<s:iterator>`标签是Struts2中最常用的标签之一,它可以用来遍历集合(如List、Set、Map等)。但是,如果想要实现类似Java中的`for`循环功能,可以利用`org.apache.struts2.util.Counter`类来实现。 ### 实现步骤 ...
2. 遍历List和Map时,确保逻辑正确,避免越界或空指针异常。 3. 对于Map的键,最好使用常量,以保持代码的可读性和一致性。 关于工具的使用,可能涉及到IDEA、Eclipse等Java开发环境中的插件,它们可以帮助开发者...