05-struts-taglib iterate

来源:互联网 发布:山东大学网络教育 编辑:程序博客网 时间:2024/06/05 01:17

 示例如下:

(1)Action文件

public class IterateTestAction extends Action {@Overridepublic ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)throws Exception {Group group=new Group();group.setName("中国");List userList=new ArrayList();for(int i=0;i<10;i++){User user=new User();user.setName("user_"+i);user.setAge(20+i);user.setGroup(group);userList.add(user);}request.setAttribute("userlist", userList);return mapping.findForward("success");}}


(2)struts-config.xml配置如下代码

<action path="/iterate"type="edu.tjpu.struts.IterateTestAction"><forward name="success" path="/iterate.jsp"></forward></action>


(3)iterate.jsp文件如下

   方法一:使用jsp脚本获取所得元素

    其中的代码如下:

<table border=2>    <tr>    <td>姓名</td>    <td>年龄</td>    <td>组别</td>    </tr>    <%     List userList=(List)request.getAttribute("userlist");     if(userList==null||userList.size()==0){     %>     <tr>     <td colspan="3">没有符合条件的记录</td>     </tr>     <%     }else{     for(Iterator iter=userList.iterator();iter.hasNext();){     User user=(User)iter.next();      %>     <tr>     <td><%=user.getName() %></td>     <td><%=user.getAge() %></td>     <td><%=user.getGroup().getName() %></td>     </tr>     <%     }     }     %>    </table>


方法二:使用struts标签之---iterate,代码如下:

首先引入如下:

<%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic" %><%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %>


其次如下取值代码:

 <table border=2>    <tr>    <td>姓名</td>    <td>年龄</td>    <td>组别</td>    </tr>    <logic:empty name="userlist">    <tr>     <td colspan="3">没有符合条件的记录</td>     </tr>    </logic:empty>    <logic:notEmpty name="userlist">    <logic:iterate id="us" name="userlist">    <tr>    <td>    <bean:write name="us" property="name"/>    </td>    <td>    <bean:write name="us" property="age"/>    </td>    <td>    <bean:write name="us" property="group.name"/>    </td>    </tr>    </logic:iterate>    </logic:notEmpty>    </table>

即首先通过<logic:empty>判断userlist有没有值,若没有,则执行“没有符合条件的记录”;

然后通过标签<logic:notEmpty>判断userlist如果不为空,则通过迭代标签<logic:iterate>取值;

 iterate的那么属性是从scope="requet“中取得的,其中的属性id可取任何值,相当于User的对象,我们这里取值为us,然后通过标签<bean:write>输出。


 

 

原创粉丝点击