zoukankan      html  css  js  c++  java
  • struts1吊牌<logic:iterate>

    <logic:iterate>主要用于处理网页上的输出集合,集合是其中一般下列之一:
    1、 java对象的数组

    2、 ArrayList、Vector、HashMap等

    具体使用方法请參考struts文档,这里不作具体介绍

    如今定义一个class。User.java 把它编译成User.class

    package example;

    import java.io.Serializable;
    public final class User implements Serializable {
    private String name = null;
    private String password = null;

    public String getName () {
    return (this.name);
    }

    public void setName(String name) {
    this.name = name;
    }

    public String getPassword () {
    return (this. password);
    }

    public void setPassword (String password) {
    this. password = password;
    }

    }

    然后在一个struts webapplication中创建一个jsp,比如iterate.jsp



    <%@ page language="java" %>
    <%@ page import="example.*"%>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>

    <%
    java.util.ArrayList list = new java.util.ArrayList();
    User usera=new User();
    usera.setName("white");
    usera.setPassword("abcd");
    list.add(usera);
    User userb=new User();
    userb.setName("mary");
    userb.setPassword("hijk");
    list.add(userb);
    session.setAttribute("list", list);

    %>

    <html><body><table width="100%">

    <logic:iterate id="a" name="list" type=" example.User ">

    <tr><td width="50%">

    name: <bean:write name="a" property="name"/>

    <td/><td width="50%">

    password: <bean:write name="a" property="password"/>

    </td></tr>

    </logic:iterate>

    </table></body></html>
    将User.class, iterate.jsp放到对应的文件夹,执行iterate.jsp你就能够看到iterate的效果了

    iterate标记
    id 脚本变量的名称。它保存着集合中当前元素的句柄。
    name 代表了你须要叠代的集合,来自session或者request的属性。


    type 是当中的集合类元素的类型

    bean 的write标记是用来将属性输出的,name用来匹配iterate的id,property用来匹配对应类的属 性<logic:iterate>使用方法具体解释22007-04-04 20:34<login:iterate>标记用于在页面中创建一个循环,以此来遍历如数组、Collection、Map这种对象。该标 记的功能强大,在Struts应用的页面中常常使用到。


    1、对数组进行循环遍历
    使用<logic:iterate>标记能够用于遍历数组,下面是一段演示样例代码:
    程序代码<%
    String[] testArray={"str1","str2","str3"};
    pageContext.setAttribute("test",testArray);
    %>
    <logic:iterate id="show" name="test">
    <bean:write name="show"/>
    </logic:iterate>
    在上面的代码中,首先定义了一个字符串数组,并为其初始化。接着,将该数组存入pageContext对象中,命名为test1。然后使 用<logic:iterate>标记的name属性指定了该数组。并使用id来引用它,同一时候使用<bean:write>标记 来将其显示出来。

    其结果为:
    str1
    str2
    str3

    另外,还能够通过length属性来指定输出元素的个数。如以下的代码:
    程序代码<logic:iterate id="show" name="test" length="2" offset="1">
    <bean:write name="show"/>
    </logic:iterate>
    当中length属性指定了输出元素的个数,offset属性指定了从第几个元素開始输出。如此处为1。则表示从第二个元素開始输出。所以该代码的执行结果应当输出:
    str2
    str3

    另外,该标记另一个indexId属性,它指定一个变量存放当前集合中正被訪问的元素的序号,如:
    程序代码<logic:iterate id="show" name="test" length="2" offset="1" indexId="number">
    <bean:write name="number"/>:<bean:write name="show"/>
    </logic:iterate>
    其显示结果为:
    1:str2
    2:str3

    2、对HashMap进行循环遍历
    程序代码<%
    HashMap countries=new HashMap();
    countries.put("country1","中国");
    countries.put("country2","美国");
    countries.put("country3","英国");
    countries.put("country4","法国");
    countries.put("country5","德国");
    pageContext.setAttribute("countries",countries);
    %>
    <logic:iterate id="country" name="countries">
    <bean:write name="country" property="key"/>:
    <bean:write name="country" property="value"/>
    </logic:iterate>
    在bean:write中通过property的key和value分别获得HaspMap对象的键和值。

    其显示结果为:
    country5:德国
    country3:英国
    country2:美国
    country4:法国
    country1:中国
    由结果可看出,它并未按加入的顺序将其显示出来。

    这是由于HaspMap是无序存放的。

    3、嵌套遍历
    程序代码<%
    String[] colors={"red","green","blue"};
    String[] countries1={"中国","美国","法国"};
    String[] persons={"乔丹","布什","克林顿"};
    ArrayList list2=new ArrayList();
    list2.add(colors);
    list2.add(countries1);
    list2.add(persons);
    pageContext.setAttribute("list2",list2);
    %>
    <logic:iterate id="first" name="list2" indexId="numberfirst">
    <bean:write name="numberfirst"/>
    <logic:iterate id="second" name="first">
    <bean:write name="second"/>
    </logic:iterate>
    <br>
    </logic:iterate>
    执行效果:
    0 red green blue
    1 中国 美国 法国
    2 约旦 灌木 克林顿

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    164 Maximum Gap 最大间距
    162 Find Peak Element 寻找峰值
    160 Intersection of Two Linked Lists 相交链表
    155 Min Stack 最小栈
    154 Find Minimum in Rotated Sorted Array II
    153 Find Minimum in Rotated Sorted Array 旋转数组的最小值
    152 Maximum Product Subarray 乘积最大子序列
    151 Reverse Words in a String 翻转字符串里的单词
    bzoj3994: [SDOI2015]约数个数和
    bzoj 4590: [Shoi2015]自动刷题机
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4658223.html
Copyright © 2011-2022 走看看