日期:2014-05-16  浏览次数:20361 次

避免在jsp页面多次遍历同一个List对象
要在jsp页面使用<s:iterator>标签来遍历list数组,是非常简单的一件事.
如果你在jsp页面加了条件查询,查询的结果也是装着相同对象的list,是否要在jsp页面写两个<s:iterator>循环呢,答案是不用的.

写两个<s:iterator>的做法:
//当页面加载时userList为空,执行<s:action>获取userList
<s:if test="null==userList">
<s:action name="userListAction" namespace="/" id="u"></s:action>
<s:iterator value="#u.userList" var="user" status="num">
    <tr>
        <td>
            ${num.count}//计数的序号
        </td>
        <td>
            ${user.name}//遍历user对象的name属性
         </td>
    </tr>
</s:iterator>
</s:if>
//当使用条件查询获取到的userList
<s:if test="null!=userList">
<s:iterator value="#u.userList" var="user" status="num">
    <tr>
        <td>
            ${num.count}//计数的序号
        </td>
        <td>
            ${user.name}//遍历user对象的name属性
         </td>
    </tr>
</s:iterator>
</s:if>

写一个<s:iterator>的做法:
这中做法,是把判断userList写到action中,而不是写到jsp里
<s:iterator value="#u.userList" var="user" status="num">
    <tr>
        <td>
            ${num.count}//计数的序号
         </td>
        <td>
            ${user.name}//遍历user对象的name属性
         </td>
    </tr>
</s:iterator>