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>
相关推荐
<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
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...
2. 遍历List<List<String>> 3. 遍历UserEntity 4. 遍历List<UserEntity> 遍历方法各有长短,若不是多表联接查询、显示表格的列数已经固定,一般用实体类(UserEntity)迭代的方式。相反,显示的数据表格行和列不确定...
<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...
<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....
<iterator>:迭代器 <list>:链表 <map>:映射 <memory>:内存管理 <optional>:可选值 <queue>:队列 <random>:随机数 <regex>:正则表达式 <set>:集合 <stack>:栈 <string>:字符串 <tuple>:元组 <unordered_...
<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...
NULL 博文链接:https://shupili141005.iteye.com/blog/667446
1:在action中定义的变量,在jsp页面中显示用:<s:property value="变量名" /> 2:在页面中实现自动增加的序号用iterator的statuts的index属性 eg: <s:iterator value="#request.inOutAccountList" id="data" ...
可以通过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 ...
(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)插入元素...
主要介绍Strus2中的通用标签,主要有<s:url>, <s:set>, <s:push>, <s:if>, <s:elseif>, <s:else>, <s:iterator>, <s:sort>, <s:date>, <s:a>等几个标签的具体用法,希望能对大家有帮助。
web开发struts2标签 <s:property></s:property> <s:iterator></s:iterator>
vector<student>::iterator cit; cit=onit.end(); onit.insert(cit,Student); cout<<"你插入的学生信息为:"<<endl; cit=onit.begin(); for (;cit!=onit.end();cit++) { // cout <<"学生姓名为:"<<*cit->...