1.假使现在有这样一个Action:
-
importjava.util.ArrayList;
-
importjava.util.HashMap;
-
importjava.util.List;
-
importjava.util.Map;
-
-
importcom.opensymphony.xwork2.ActionSupport
-
importcom.model.Student
-
publicclassMapActionextendsActionSupport
-
{
-
-
privateMap<String,String>map;
-
-
privateMap<String,Student>studentMap;
-
-
privateMap<String,String[]>arrayMap;
-
-
privateMap<String,List<Student>>listMap;
-
-
-
publicStringtestMap()
-
{
-
map=newHashMap<String,String>();
-
map.put("1","one");
-
map.put("2","two");
-
-
studentMap=newHashMap<String,Student>();
-
studentMap.put("student1",newStudent(newLong(1),"20034140201","张三1","男",25));
-
studentMap.put("student2",newStudent(newLong(2),"20034140202","张三2","女",26));
-
studentMap.put("student3",newStudent(newLong(3),"20034140202","张三3","男",27));
-
-
arrayMap=newHashMap<String,String[]>();
-
arrayMap.put("arr1",newString[]{"1","2003401","leejie","male","20"});
-
arrayMap.put("arr2",newString[]{"2","2003402","huanglie","male","25"});
-
arrayMap.put("arr3",newString[]{"3","2003403","lixiaoning","male","21"});
-
-
-
listMap=newHashMap<String,List<Student>>();
-
-
List<Student>list1=newArrayList<Student>();
-
list1.add(newStudent(newLong(1),"20034140201","张三1","男",25));
-
list1.add(newStudent(newLong(2),"20034140202","张三2","男",25));
-
list1.add(newStudent(newLong(3),"20034140203","张三3","男",25));
-
listMap.put("class1",list1);
-
-
List<Student>list2=newArrayList<Student>();
-
list2.add(newStudent(newLong(1),"20034140301","李四1","男",20));
-
list2.add(newStudent(newLong(2),"20034140302","李四2","男",21));
-
list2.add(newStudent(newLong(3),"20034140303","李四3","男",22));
-
list2.add(newStudent(newLong(4),"20034140304","李四4","男",23));
-
listMap.put("class2",list2);
-
-
-
-
-
returnSUCCESS;
-
-
}
-
-
publicMap<String,String>getMap(){
-
returnmap;
-
}
-
-
publicvoidsetMap(Map<String,String>map){
-
this.map=map;
-
}
-
-
publicMap<String,Student>getStudentMap(){
-
returnstudentMap;
-
}
-
-
publicvoidsetStudentMap(Map<String,Student>studentMap){
-
this.studentMap=studentMap;
-
}
-
-
publicMap<String,String[]>getArrayMap(){
-
returnarrayMap;
-
}
-
-
-
publicvoidsetArrayMap(Map<String,String[]>arrayMap){
-
this.arrayMap=arrayMap;
-
}
-
-
-
publicMap<String,List<Student>>getListMap(){
-
returnlistMap;
-
}
-
-
publicvoidsetListMap(Map<String,List<Student>>listMap){
-
this.listMap=listMap;
-
}
-
-
-
}
这个action中给出了各种类型的map,下面我们有这样一个jsp,我们要将这些map展示到这个jsp中:
-
<%@pagecontentType="text/html;charset=UTF-8"%>
-
<%@taglibprefix="s"uri="/struts-tags"%>
-
<html>
-
<head>
-
<title>struts2中的map遍历总结</title>
-
</head>
-
<body>
-
<b>1.map中的value为String字符串</b><br>
-
<s:iteratorvalue="map"id="column">
-
<s:propertyvalue="#column"/><br>
-
key:<s:propertyvalue="key"/><br>
-
value:<s:propertyvalue="value"/><br>
-
******************************************<br>
-
</s:iterator>
-
-
-
<b>2.map中的value为Student对象</b>
-
<tableborder="1"width="50%"cellspacing="0"cellpadding="0">
-
<tr>
-
<td>key=value</td>
-
<td>ID</td>
-
<td>num</td>
-
<td>name</td>
-
<td>sex</td>
-
<td>age</td>
-
</tr>
-
<s:iteratorvalue="studentMap"id="column">
-
<tr>
-
<td><s:propertyvalue="#column"/></td>
-
<td><s:propertyvalue="value.id"/></td>
-
<td><s:propertyvalue="value.num"/></td>
-
<td><s:propertyvalue="value.name"/></td>
-
<td><s:propertyvalue="value.sex"/></td>
-
<td><s:propertyvalue="value.age"/></td>
-
</tr>
-
</s:iterator>
-
</table>
-
<p>
-
-
-
<b>3.map中的value为String数组</b>
-
<tableborder="1"width="50%"cellspacing="0"cellpadding="0">
-
<tr>
-
<td>key=value</td>
-
<td>ID</td>
-
<td>num</td>
-
<td>name</td>
-
<td>sex</td>
-
<td>age</td>
-
</tr>
-
<s:iteratorvalue="arrayMap"id="column">
-
<tr>
-
<td><s:propertyvalue="#column"/></td>
-
<td><s:propertyvalue="value[0]"/></td>
-
<td><s:propertyvalue="value[1]"/></td>
-
<td><s:propertyvalue="value[2]"/></td>
-
<td><s:propertyvalue="value[3]"/></td>
-
<td><s:propertyvalue="value[4]"/></td>
-
</tr>
-
</s:iterator>
-
</table>
-
<p>
-
<b>4.map中的value为list凑集</b>
-
<tableborder="1"width="50%"cellspacing="0"cellpadding="0">
-
<tr>
-
<td>class</td>
-
<td>ID</td>
-
<td>num</td>
-
<td>name</td>
-
<td>sex</td>
-
<td>age</td>
-
</tr>
-
-
<1.<s:iteratorvalue="listHashMap"id="listid">
-
<s:iteratorvalue="#listid.value"id="listidsub">
-
<tr>
-
<td><s:propertyvalue="key"/></td>
-
<td><s:propertyvalue="id"/></td>
-
<td><s:propertyvalue="num"/></td>
-
<td><s:propertyvalue="name"/></td>
-
<td><s:propertyvalue="sex"/></td>
-
<td><s:propertyvalue="age"/></td>
-
</tr>
-
</s:iterator>
-
</s:iterator>
-
</table>
-
-
-
</body>
-
</html>
-
4、普通属性
-
publicStringexecute(){
-
username="zhangsan";
-
password="123";
-
}
-
<s:propertyvalue="username"/><br>
-
<s:propertyvalue="password"/><br>
-
-
5、自定义对象
-
publicStringexecute(){
-
userInfo=newUserInfo();
-
userInfo.setUsername("hhh");
-
userInfo.setPassword("111");
-
}
-
<s:propertyvalue="userInfo.username"/><br>
-
<s:propertyvalue="userInfo.password"/><br>
-
-
6、List(普通属性)
-
publicStringexecute(){
-
list=newArrayList<String>();
-
list.add("aaa");
-
list.add("bbb");
-
list.add("ccc");
-
}
-
<s:iteratorvalue="list"var="var">
-
<s:propertyvalue="var"/><br>
-
</s:iterator>
-
或者:
-
<s:iteratorvalue="list">
-
<s:property/><br>
-
</s:iterator>
-
-
6、List(自定义对象属性)
-
publicStringexecute(){
-
list=newArrayList<UserInfo>();
-
UserInfouserInfo=newUserInfo();
-
userInfo.setUsername("u1");
-
userInfo.setPassword("p1");
-
userInfo.setRoleInfo(newRoleInfo("r1"));
-
list.add(userInfo);
-
userInfo=newUserInfo();
-
userInfo.setUsername("u2");
-
userInfo.setPassword("p2");
-
userInfo.setRoleInfo(newRoleInfo("r2"));
-
list.add(userInfo);
-
}
-
<s:iteratorvalue="list"var="var">
-
<s:propertyvalue="#var.username"/>
-
<s:propertyvalue="#var.password"/>
-
<s:propertyvalue="#var.roleInfo.rolename"/><br>
-
</s:iterator>
-
或者:
-
<s:iteratorvalue="list">
-
<s:propertyvalue="username"/>
-
<s:propertyvalue="password"/>
-
<s:propertyvalue="roleInfo.rolename"/><br>
-
</s:iterator>
-
-
7、数组(普通属性)
-
publicStringexecute(){
-
strs=newString[2];
-
strs[0]="as";
-
strs[1]="asd";
-
}
-
<s:iteratorvalue="strs">
-
<s:property/><br>
-
</s:iterator>
-
或者:
-
<s:iteratorvalue="strs"var="var">
-
<s:propertyvalue="var"/><br>
-
</s:iterator>
-
-
8、数组(自定义对象属性)
-
publicStringexecute(){
-
strs=newUserInfo[2];
-
UserInfouserInfo=newUserInfo();
-
userInfo.setUsername("u11");
-
userInfo.setPassword("11");
-
strs[0]=userInfo;
-
userInfo=newUserInfo();
-
userInfo.setUsername("u22");
-
userInfo.setPassword("22");
-
strs[1]=userInfo;
-
}
-
<s:iteratorvalue="strs">
-
<s:propertyvalue="username"/>
-
<s:propertyvalue="password"/><br>
-
</s:iterator>
-
或者:
-
<s:iteratorvalue="strs"var="var">
-
<s:propertyvalue="#var.username"/>
-
<s:propertyvalue="#var.password"/><br>
-
</s:iterator>
-
-
8、数组(自定义对象属性)
-
publicStringexecute(){
-
strs=newUserInfo[2];
-
UserInfouserInfo=newUserInfo();
-
userInfo.setUsername("u11");
-
userInfo.setPassword("11");
-
userInfo.setRoleInfo(newRoleInfo("r11"));
-
strs[0]=userInfo;
-
userInfo=newUserInfo();
-
userInfo.setUsername("u22");
-
userInfo.setPassword("22");
-
userInfo.setRoleInfo(newRoleInfo("r22"));
-
strs[1]=userInfo;
-
}
-
<s:iteratorvalue="strs"var="var">
-
<s:propertyvalue="#var.username"/>
-
<s:propertyvalue="#var.password"/>
-
<s:propertyvalue="#var.roleInfo.rolename"/><br>
-
</s:iterator>
-
或者:
-
<s:iteratorvalue="strs">
-
<s:propertyvalue="username"/>
-
<s:propertyvalue="password"/>
-
<s:propertyvalue="roleInfo.rolename"/><br>
-
</s:iterator>
-
-
8、Map(普通属性)
-
publicStringexecute(){
-
map=newHashMap<String,String>();
-
map.put("k1","v1");
-
map.put("k2","v2");
-
}
-
<s:iteratorvalue="map"var="var">
-
<s:propertyvalue="#var.key"/>
-
<s:propertyvalue="#var.value"/><br>
-
</s:iterator>
-
或者:
-
<s:iteratorvalue="map">
-
<s:propertyvalue="key"/>
-
<s:propertyvalue="value"/><br>
-
</s:iterator>
-
-
8、Map(自定义对象属性)
-
publicStringexecute(){
-
map=newHashMap<String,UserInfo>();
-
UserInfouserInfo=newUserInfo();
-
userInfo.setUsername("u1");
-
userInfo.setPassword("p1");
-
userInfo.setRoleInfo(newRoleInfo("r1"));
-
map.put("k1",userInfo);
-
userInfo=newUserInfo();
-
userInfo.setUsername("u2");
-
userInfo.setPassword("p2");
-
userInfo.setRoleInfo(newRoleInfo("r2"));
-
map.put("k2",userInfo);
-
}
-
<s:iteratorvalue="map"var="var">
-
<s:propertyvalue="#var.key"/>
-
<s:propertyvalue="#var.value.username"/>
-
<s:propertyvalue="#var.value.password"/>
-
<s:propertyvalue="#var.value.roleInfo.rolename"/><br>
-
</s:iterator>
-
或者
-
<s:iteratorvalue="map">
-
<s:propertyvalue="key"/>
-
<s:propertyvalue="value.username"/>
-
<s:propertyvalue="value.password"/>
-
<s:propertyvalue="value.roleInfo.rolename"/><br>
-
</s:iterator>
-
-
8、Map嵌套Map(自定义对象属性)
-
publicStringexecute(){
-
map=newTreeMap<String,Map<String,UserInfo>>();
-
Map<String,UserInfo>innerMap=newTreeMap<String,UserInfo>();
-
UserInfouserInfo=newUserInfo();
-
userInfo.setUsername("u1");
-
userInfo.setPassword("p1");
-
userInfo.setRoleInfo(newRoleInfo("r1"));
-
userInfo=newUserInfo();
-
userInfo.setUsername("u11");
-
userInfo.setPassword("p11");
-
userInfo.setRoleInfo(newRoleInfo("r11"));
-
innerMap.put("k1",userInfo);
-
innerMap.put("k11",userInfo);
-
map.put("key1",innerMap);
-
-
innerMap=newTreeMap<String,UserInfo>();
-
userInfo=newUserInfo();
-
userInfo.setUsername("u2");
-
userInfo.setPassword("p2");
-
userInfo.setRoleInfo(newRoleInfo("r2"));
-
userInfo=newUserInfo();
-
userInfo.setUsername("u22");
-
userInfo.setPassword("p22");
-
userInfo.setRoleInfo(newRoleInfo("r22"));
-
innerMap.put("k2",userInfo);
-
innerMap.put("k22",userInfo);
-
map.put("key2",innerMap);
-
}
-
<s:iteratorvalue="map"var="var">
-
<s:iteratorvalue="value">
-
<s:propertyvalue="#var.key"/>
-
<s:propertyvalue="key"/>
-
<s:propertyvalue="value.username"/>
-
<s:propertyvalue="value.password"/>
-
<s:propertyvalue="value.roleInfo.rolename"/><br>
-
</s:iterator>
-
</s:iterator>
分享到:
相关推荐
<s:iterator value="list" id="book" status="u"> <tr> <td> <s:property value="id" /> </td> <td> <s:property value="name" /> </td> <td> ...
在action里面写了方法获取一个list,再将这个list的值放到jsp页面中显示出来,用的是<s:iterator>标签。
NULL 博文链接:https://takeme.iteye.com/blog/1663039
NULL 博文链接:https://takeme.iteye.com/blog/1663239
2. 遍历List<List<String>> 3. 遍历UserEntity 4. 遍历List<UserEntity> 遍历方法各有长短,若不是多表联接查询、显示表格的列数已经固定,一般用实体类(UserEntity)迭代的方式。相反,显示的数据表格行和列不确定...
4. <s:iterator></s:iterator>-----用于遍历集合 L: 1. <s:label></s:label>-----只读的标签 M: 1. <s:merge></s:merge>-----合并遍历集合出来的值 O: 1. <s:optgroup></s:optgroup>-----获取...
<%@ taglib uri="/struts-tags" prefix="s" %> 结合例子,重点掌握以下标签的用法 (1) <s:property> (2) <s:set> (3) <s:if> 、<s:elseif>、<s:else> (4) <s:iterator> (5) <s:include> (6) <s:form>、<s:hidden> (7...
<%@ taglib uri="/struts-tags" prefix="s" %> 结合例子,重点掌握以下标签的用法 (1) <s:property> (2) <s:set> (3) <s:if> 、<s:elseif>、<s:else> (4) <s:iterator> (5) <s:include> (6) <s:form>、<s:hidden> (7...
<s:iterator value="list" status="st"> <tr> <td><s:property value="username"/></td> <td><s:property value="password"/></td> <td><s:property value="power"/></td> <td><s:property value="cdate"/></td> <td...
<s:iterator> <s:property /><br/> </s:iterator> </s:generator> 例2: 生成一个iterator,使用count属性。因为count属性值为3,所以只有前三个内容(aaa,bbb,ccc)在生成的iterator中。 Generate an iterator ...
<s:iterator id="rs" value="resList" status="count" > </s:iterator> <s:iterator id="pwd" value="#request.usePwdList" status="mIndex"> <tr> <td> <a href="[removed]similarityPwdDeQQ('${pwd.idType...
NULL 博文链接:https://shupili141005.iteye.com/blog/667446
<iterator>:迭代器 <list>:链表 <map>:映射 <memory>:内存管理 <optional>:可选值 <queue>:队列 <random>:随机数 <regex>:正则表达式 <set>:集合 <stack>:栈 <string>:字符串 <tuple>:元组 <unordered_...
1:在action中定义的变量,在jsp页面中显示用:<s:property value="变量名" /> 2:在页面中实现自动增加的序号用iterator的statuts的index属性 eg: <s:iterator value="#request.inOutAccountList" id="data" ...
<s:include value="../Struts2GotoPage.jsp"></s:include> <s:iterator value="goods" id="item" status="st"> <tr align="center"> <td >${st.index+1} </td> <td >${item.gsName }</td> <td >${item....
可以通过2种方法遍历HashMap<br><br>Map map = new HashMap();<br><br>for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) {<br><br> Map.Entry entry = (Map.Entry) iter.next();<br><br> Object ...
vector<student>::iterator cit; cit=onit.end(); onit.insert(cit,Student); cout<<"你插入的学生信息为:"<<endl; cit=onit.begin(); for (;cit!=onit.end();cit++) { // cout <<"学生姓名为:"<<*cit->...
(2)创建vector对象,vector<int> vec; (3)尾部插入数字:vec.push_back(a); (4)使用下标访问元素,cout<<vec>::iterator it; for(it=vec.begin();it!=vec.end();it++) cout<<*it<<endl; (6)插入元素...
主要介绍了JSP中c:foreach遍历和s:iterator遍历异同,以两个完整实例形式对比分析了c:foreach遍历和s:iterator遍历的具体用法,具有一定参考借鉴价值,需要的朋友可以参考下
主要介绍Strus2中的通用标签,主要有<s:url>, <s:set>, <s:push>, <s:if>, <s:elseif>, <s:else>, <s:iterator>, <s:sort>, <s:date>, <s:a>等几个标签的具体用法,希望能对大家有帮助。