zoukankan      html  css  js  c++  java
  • struts标签<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 乔丹 布什 克林顿  [/size][/size][/color][/color]

  • 相关阅读:
    物联网需要自己的专有操作系统
    基于visual Studio2013解决C语言竞赛题之0201温度转换
    基于visual Studio2013解决C语言竞赛题之前言
    物联网操作系统再思考:建设更加主动的网络,面向连接一切的时代
    经典排序算法分析和代码-下篇
    Windows XP硬盘安装Ubuntu 12.04双系统图文详解
    Eclipse 编码区-保护色-快捷大全
    Android最新源码4.3下载-教程 2013-11
    Windows XP硬盘安装Ubuntu 12.04双系统图文详解
    惠威的M200MK3的前级电子分频板
  • 原文地址:https://www.cnblogs.com/husam/p/5443092.html
Copyright © 2011-2022 走看看