首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

<logic:iterate>施用

2012-10-09 
logic:iterate使用logic:iterate 是Logic 标签库中最复杂的标签,也是用途最广的一个标签,它能够在一个

<logic:iterate>使用
<logic:iterate> 是Logic 标签库中最复杂的标签,也是用途最广的一个标签,它能够在一个循环中遍历数组、Collection、Enumeration、Iterator 或 Map 中的所有元素。

1. 遍历集合
  <logic:iterate> 的 name 属性指定需要进行遍历的集合对象, 它每次从集合中检索出一个元素, 然后把它放在page 范围内, 并以id 属性指定的字符串来命名这个元素, 例如:


   

    以上代码先定义了一个Vector 类型的集合变量 Animals, 它存放在request 范围内. 接下来<logic:iterate> 标签在一个循环中遍历Animals 集合(这个集合名就是在标签中的name 属性的值)中所有元素, 每次检索到一个元素, 就把它命名为"element"(标签id 属性的值), 并存放在page 范围内. 
    在<logic:iterate> 中, 还嵌套了一个<bean:write>标签, 它用于输出每个元素的内容. 以上代码的输出内容如下:
    Dog
    Cat
    Bird
    Chick
   
     length    属性指定需要遍历的元素的数目, 如果没有设置length 属性, 就遍历集合中的所有元素.
    offset      属性指定开始遍历的起始位置, 默认值为 "0" , 表示从集合的第一个元素开始遍历.
    indexId  属性定义一个代表当前遍历元素序号的变量, 这个变量被存放在 page 范围内, 可以被标签主体的<bean:write> 标签访问. 例如:



2. 遍历Map
 
   以上代码先定义一个名为"months" 的HashMap, 存放在request 范围内. 接下来在<logic:iterate> 标签遍历months 对象的每一个元素, 每一个元素包含一对 key/value . 在<logic:iterate> 标签主体中包含三个<bean:write> 标签, 分别输出每个元素的序号、key 和 value. 以上代码的输出内容如下:
   
    以上代码先定义一个名为"catelog" 的HashMap , 存放在request 范围内, 它的每个元素的value 为字符串数组.
    接下来外层的<logic:iterate>标签遍历HashMap 中的所有元素, 内层的<logic:iterate>标签访问每个元素的value 属性, 遍历value 属性引用的字符串数组中的所有元素.

3. 设置被遍历的变量
    可以通过以下方式来设置需要遍历的变量
    (1) 设置name 属性, name 属性指定需要遍历的集合或Map, 例如:
      
    (2) 设置name 属性和property 属性, name 属性指定一个JavaBean, property 属性指定JavaBean 的一个属性, 这个属性为需要遍历的集合或Map, 例如: 
       
    (3) 设置collection 属性, collection 属性指定一个运行时表达式, 表达式的运算结果为需要遍历的集合或Map, 例如: 
       

4. 读取JavaBean 中的数据
  (1) 在Jsp 页面中加入JavaBean 如:
      
  (3) 在JavaBean 中的集合对象中存放实体对象的语句如下: 
     
  ......         public class GetArticleClasses         {             // 数据集合             private Collection coll;                 // 返回数据集合             public Collection getColl()             {                 return coll;             }             // 构造函数, 取出数据,存入集合中             public GetArticleClasses()             {                 coll = new ArrayList();                 try{                     // 数据库连接                     Connection connection = DBConnection.getConnection();                     if(connection != null)                     {                         Statement statement = connection.createStatement();                         ResultSet resultset;                         ArticleClass articleclass;                         resultset = statement.executeQuery("SELECT * FROM table ORDER BY id");                         while( resultset.next())                         {                             articleclass = new ArticleClass();                             articleclass.setId(resultset.getInt("id"));                             articleclass.setClassId(resultset.getString("class"));                             articleclass.setClassName(resultset.getString("name"));                                                         coll.add(articleclass))                 }                 resultset.close();                 connection.close();             } else {                 coll = null;             }         } catch(Exception exception) {             coll = null;         }     } } 

热点排行