struts2标签与Jstl标签遍历集合的用法

(一)struts2标签遍历集合

 

1、struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等以下几个简单的demo:
s:iterator 标签有3个属性:
    value:被迭代的集合
    id   :指定集合里面的元素的id
    status:迭代元素的索引

        var: 定义对象接收从集合里遍历出的每一个元素。同时其会自动转型

2:索引的用法
如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法

<s:iterator 中的status 使用方法

1:#status.odd 当前元素索引是否奇数行

2:#status.even 当前元素索引是否偶数

3:#status.count 当前迭代了几个元素
4:#status.index当前元素索引,从0开始『#status.count=#status.index+1』

5:#status.first 当前是否第一个元素
6:#status.last 当前是否最后一个元素
7:#status.modules(int)当前行数取模  

 

3、<s:iterator id="元素id" value="后台List变量名">

 

<s:property value="#变量名.属性名"/>

区别1:List<String>的遍历需要iterator迭代器如<s:iterator id="元素id" value="后台List变量名">,且不需要value属性直接用<s:property />获取列表元素;
  区别2:UserEntity刚相反,不需要iterator迭代器,但需要value属性<s:property value="#变量名.属性名" />来获取列表元素。

 

遍历map:Map map = new HashMap();

List list = new ArrayList();
 

<s:iterator value="categories" var="c" >

<s:property value="#c.name"/>|
<s:property value="#c.description"/>|
<a href="admin/Category_updateInput?id=<s:property value="#c.id" />">修改</a>|
<a href="admin/Category_delete?id=<s:property value="#c.id" />">删除</a>
<br/>
</s:iterator>

 

  1. 在类中定义的集合类型如下:  
  2. private String [] arryStr;  
  3.       
  4. private List<User> list;  
  5.       
  6. private Map<String,String> map;  
  7.       
  8. private Map<Integer,User> userMap;  
  9.       
  10. private Map<String,String[]> arrayMap;  
  11.       
  12. private Map<String,List<User>> userListMap;  
  13. private List<Object[]> olist;  

 

 

 

 

  1. <body>  
  2.     <center>  
  3.     <br/>======iterator遍历String 字符数组======<br/>  
  4.         <s:iterator value="arryStr" id="array">  
  5.            <s:property value="array"/><br/>  
  6.         </s:iterator>  
  7.     <div></div>  
  8.     <br/>======iterator遍历List集合======<br/>  
  9.     <table border="1" width="50%" cellpadding="0" cellspacing="0">  
  10.         <tr style="background-color: yellow">  
  11.             <td>id</td>  
  12.             <td>name</td>  
  13.             <td>pwd</td>  
  14.             <td>age</td>  
  15.         </tr>  
  16.         <s:iterator value="list" id="array">  
  17.             <tr>  
  18.             <td><s:property value="id"/></td>  
  19.         <td><s:property value="name"/></td>  
  20.         <td><s:property value="pwd"/></td>  
  21.         <td><s:property value="age"/></td>  
  22.         </tr>  
  23.         </s:iterator>  
  24.     </table>  
  25.   
  26.     <br/>======iterator遍历Map中的String字符串======<br/>  
  27.     <s:iterator value="map" id="column">  
  28.     <s:property value="#column"/><br/>  
  29.     Key:<s:property value="key"/><br/>  
  30.     Value:<s:property value="value"/><br/>  
  31.     </s:iterator>  
  32.     <div></div>  
  33.     <br/>======iterator遍历Map中的User 对象(Object)======<br/>  
  34.     <table border="1" width="50%" cellpadding="0" cellspacing="0">  
  35.         <tr style="background-color: yellow">  
  36.             <td>key=value</td>  
  37.             <td>id</td>  
  38.             <td>name</td>  
  39.             <td>pwd</td>  
  40.             <td>age</td>  
  41.         </tr>  
  42.         <s:iterator value="userMap" id="column">  
  43.     <tr>  
  44.         <td><s:property value="#column"/></td>  
  45.         <td><s:property value="value.id"/></td>  
  46.         <td><s:property value="value.name"/></td>  
  47.         <td><s:property value="value.pwd"/></td>  
  48.         <td><s:property value="value.age"/></td>  
  49.     </tr>  
  50.   </s:iterator>  
  51.   </table>  
  52.   <br/>======iterator遍历Map中的String字符数组======  
  53.         <s:iterator value="arrayMap" id="column">  
  54.         <div><s:property value="#column"/></div>  
  55.         -------------------key:<s:property value="key"/>--------------------<br/>  
  56.         <s:iterator value="value" id="col">  
  57.             <s:property value="col"/><br/>  
  58.         </s:iterator>  
  59.         <div></div>  
  60.     </s:iterator>  
  61.       
  62.   <br/>======iterator遍历Map中的List集合======  
  63.   <table border="1" width="50%" cellpadding="0" cellspacing="0">  
  64.         <tr style="background-color: yellow">  
  65.             <td>key</td>  
  66.             <td>id</td>  
  67.             <td>name</td>  
  68.             <td>pwd</td>  
  69.             <td>age</td>  
  70.         </tr>  
  71.         <s:iterator value="userListMap" id="column">  
  72.             <s:set var="total" name="total" value="#column.value.size"/>  
  73.         <s:iterator value="#column.value" id="col" status="st">  
  74.         <tr>  
  75.             <s:if test="#st.first"><td rowspan="${total}"><s:property value="#column.key"/></td></s:if>  
  76.             <td><s:property value="id"/></td>  
  77.             <td><s:property value="name"/></td>  
  78.             <td><s:property value="pwd"/></td>  
  79.             <td><s:property value="age"/></td>  
  80.         </tr>  
  81.         </s:iterator>  
  82.     </s:iterator>  
  83.   </table>  
  84.    <br/>======iterator遍历object[]中的List集合======  
  85.   <table border="1" width="50%" cellpadding="0" cellspacing="0">  
  86.         <tr style="background-color: yellow">  
  87.             <td>key</td>  
  88.             <td>id</td>  
  89.             <td>name</td>  
  90.         </tr>  
  91.         <s:iterator value="olist" id="value"  status="st">  
  92.         <tr>  
  93.             <td><s:property value="olist[#st.index][0]"/></td>  
  94.             <td><s:property value="olist[#st.index][1]"/></td>  
  95.             <td><s:property value="olist[#st.index][2]"/></td>  
  96.         </tr>  
  97.     </s:iterator>  
  98.   </table>  
  99.     </center>     
  100.  </body>  

 

 

 

(二)jstl标签遍历集合

 

(一)<c:forEach>用于循环遍历,输出所有的元素

使用<c:forEach>要先导入标签库:<%@taglib uri="http://Java.sun.com/jsp/jstl/core" prefix="c" %>    才可以以使用。

(二)<c:forEach>的参数及用法:

items 用于接收集合对象,

var 定义对象接收从集合里遍历出的每一个元素。同时其会自动转型

begin 定义遍历的开始位置,

end定义遍历的结束位置。begin 和end的引号必须写。

varStatus 表示当前集合的状态,可以访问当前集合元素的信息。

使用方法示例:

<c:forEach var="item" items="${webFrameworkList}">${item}</c:forEach>

循环遍历,输出一个范围类的元素。
<c:foreach items ="${lis}" var = "li " begin="2" end ="12">
${li}
</c:foreach>

 

    int[] ages = { 1, 2, 3, 4, 5 }; // 普通数组,JSTL直接使用JSP赋值表达式来取
    List<String> names = new LinkedList<String>(); // List
    names.add("Biao");
    names.add("彪");
    names.add("雷");
    request.setAttribute("names", names); // 添加到request

    Set<String> set = new TreeSet<String>(); // Set
    set.add("One");
    set.add("One");
    set.add("Two");
    set.add("Three");
    set.add("Set");

    Map<String, String> map = new HashMap<String, String>(); // Map
    map.put("1", "黄彪");
    map.put("2", "丫头");
    map.put("3", "哥哥");
    map.put("4", "笨蛋");

    List<User> users = new ArrayList<User>(); // JavaBean的List
    users.add(new User("黄彪", "xxxxxx"));
    users.add(new User("昊天", "xxxxxx"));
    users.add(new User("姐姐", "yyyyyy"));
    users.add(new User("丫头", "zzzzzz"));

    session.setAttribute("users", users); // 添加到session

%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Iterator Collections</title>
<style type="text/css">
table {
    border-collapse: collapse;
    border: 1px solid black;
}
td, th {
    border: 1px solid black;
}
tr:nth-child(even) {
    background: #eee;
}
</style>
</head>
<body>
<center>
遍历数组: 
<c:forEach var="age" items="${ages}">
<c:out value="${age}" />
</c:forEach>
<br />
遍历List:
<c:forEach var="name" items="${names}">
    <c:out value="${name}" />
</c:forEach>
<br />

遍历List:
<c:forEach var="name" items="${names}">
    <c:out value="${name}" />
</c:forEach>
<br />
<br />

遍历Set:
<c:forEach var="entry" items="${sets}">
    <c:out value="${entry}" />
</c:forEach>
<br />

遍历Map:
<table>
    <tr>
        <th>Key</th>
        <th>Value</th>
    </tr>
<c:forEach var="entry" items="${maps}">
<tr>
<td><c:out value="${entry.key}"/></td>
<td><c:out value="${entry.value}"/></td>
</tr>
</c:forEach>
</table>
<br />
遍历UserBean的List:
<table>
    <tr>
        <th>username</th>
        <th>password</th>
    </tr>
<c:forEach var="user" items="${users}">
<tr>
<td><c:out value="${user.username}"/></td>
<td><c:out value="${user.password}"/></td>
</tr>
</c:forEach>
</table>
</center>
</body>
</html>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    int[] ages = { 1, 2, 3, 4, 5 }; // 普通数组,JSTL直接使用JSP赋值表达式来取
    List<String> names = new LinkedList<String>(); // List
    names.add("Biao");
    names.add("彪");
    names.add("雷");
    request.setAttribute("names", names); // 添加到request

    Set<String> set = new TreeSet<String>(); // Set
    set.add("One");
    set.add("One");
    set.add("Two");
    set.add("Three");
    set.add("Set");

    Map<String, String> map = new HashMap<String, String>(); // Map
    map.put("1", "黄彪");
    map.put("2", "丫头");
    map.put("3", "哥哥");
    map.put("4", "笨蛋");

    List<User> users = new ArrayList<User>(); // JavaBean的List
    users.add(new User("黄彪", "xxxxxx"));
    users.add(new User("昊天", "xxxxxx"));
    users.add(new User("姐姐", "yyyyyy"));
    users.add(new User("丫头", "zzzzzz"));

    session.setAttribute("users", users); // 添加到session

%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Iterator Collections</title>
<style type="text/css">
table {
    border-collapse: collapse;
    border: 1px solid black;
}
td, th {
    border: 1px solid black;
}
tr:nth-child(even) {
    background: #eee;
}
</style>
</head>
<body>
<center>
遍历数组: 
<c:forEach var="age" items="<%= ages %>">
<c:out value="${age}" />
</c:forEach>
<br />
遍历List:
<c:forEach var="name" items="<%= names %>">
    <c:out value="${name}" />
</c:forEach>
<br />

遍历List:
<c:forEach var="name" items="${names}">
    <c:out value="${name}" />
</c:forEach>
<br />
<br />

遍历Set:
<c:forEach var="entry" items="<%= set %>">
    <c:out value="${entry}" />
</c:forEach>
<br />

遍历Map:
<table>
    <tr>
        <th>Key</th>
        <th>Value</th>
    </tr>
<c:forEach var="entry" items="<%= map %>">
<tr>
<td><c:out value="${entry.key}"/></td>
<td><c:out value="${entry.value}"/></td>
</tr>
</c:forEach>
</table>
<br />
遍历UserBean的List:
<table>
    <tr>
        <th>username</th>
        <th>password</th>
    </tr>
<c:forEach var="user" items="${users}">
<tr>
<td><c:out value="${user.username}"/></td>
<td><c:out value="${user.password}"/></td>
</tr>
</c:forEach>
</table>
</center>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一位远方的诗人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值