<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 约旦 灌木 克林顿

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

struts1吊牌&lt;logic:iterate&gt;的更多相关文章

  1. struts1 logic:iterate bean:write标签使用

    只是截取项目中部分代码,供参考及日后查阅 用struts1标签html:select 展现select下拉列表 刚开始为如下代码: <html:select name="Shuiwuj ...

  2. 使用struts的logic:iterate标签遍历列表时得到显示序号

    <logic:notEmpty name="sList" scope="request"> <logic:iterate id="e ...

  3. struts标签<logic:iterate>的用法

    <logic:iterate>主要用来处理在页面上输出集合类,集合一般来说是下列之一: 1. java对象的数组 2. ArrayList.Vector.HashMap等 具体用法请参考s ...

  4. Struts标签<bean:write><logic:iterate></logic:equal>的组合使用小例

    form表单中的一个下拉列表控件的代码如下 <select name="taskname" id="taskname" class="selec ...

  5. logic:iterate(转)

    logic:iterate struts标签<logic:iterate>的用法 StrutsBeanJSPWeb脚本  <logic:iterate>主要用来处理在页面上输出 ...

  6. vue实现带logo的二维码/商品条形码/打印商品吊牌

    一.带logo的二维码 1.安装 npm install vue-qr --save 2.在页面或组件中使用 <template> <div id="qrcode" ...

  7. struts 2吊牌s:if 、s:iterator注意

    疏忽,也没有相应的总结.实际上JSTL标签Struts2标签混淆.导致一些上述问题的细节.今天我给从下一个总结,同 后不要再犯这种错误. 总喜欢在s:if标签里面使用$,导致各种数据读不出来. str ...

  8. 【转】Struts1.x系列教程(7):Logic标签库

    转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/0 ...

  9. struts1四:常用标签

    struts1支持的5种标签: HTML 标签: 用来创建能够和Struts 框架和其他相应的HTML 标签交互的HTML 输入表单 Bean 标签: 在访问JavaBeans 及其属性,以及定义一个 ...

随机推荐

  1. 用友CDM系统期初导入商品资料经验

    1.       倒入商品资料,是导入表spkfk(商品档案表).spkfjc(商品总结存表),主要是将spkfk全部编码导入. 2.       导入客商资料,是导入表mchk(业务单位登记表).m ...

  2. [置顶] 如何vs在cocos2dx项目中打印中文

    一开始不是很理解,查了半天资料,终于找到解决方法,但是有部分中文还是不能打印出来,如 会出现部分的中文, 一开始都是问号的解决方法是 点击高级保存选项 设置成Unicode(UTF-8无签名) 这样就 ...

  3. hihocoder第42周 3*N骨牌覆盖(状态dp+矩阵快速幂)

    http://hihocoder.com/contest/hiho42/problem/1 给定一个n,问我们3*n的矩阵有多少种覆盖的方法 第41周做的骨牌覆盖是2*n的,状态转移方程是dp[i] ...

  4. 时间复杂度为O(nlogn)的LIS算法

    时间复杂度为 n*logn的LIS算法是用一个stack维护一个最长递增子序列 如果存在 x < y 且  a[x] > a[y],那么我们可以用a[y]去替换a[x] 因为a[y]比较小 ...

  5. 小米2S Mk6.0.1 [只能做测试体验,不能使用]

    上几张高清图片.. 说明: 此版本只能做测试体验,不能做实际使用. 开发者: laser杨万荣 感谢: 秋叶随风ivan, m1cha 及 MoKee Open Source的各位开发者 下载地址:链 ...

  6. JavaScript实现的购物车效果-效果好友列表

    JavaScript实现的购物车效果.当然,可以在许多地方使用这种效果.朋友的.例如,在选择.人力资源模块,工资的计算,人才选拔等..下面来看一下班似有些车效果图: watermark/2/text/ ...

  7. 使用require.js和backbone实现简单单页应用实践

    前言 最近的任务是重做公司的触屏版,于是再园子里各种逛,想找个合适的框架做成Web App.看到了叶大(http://www.cnblogs.com/yexiaochai/)对backbone的描述和 ...

  8. 【剑指offer】打印单列表从尾部到头部

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/25028525 剑指offer上的第五题,在九度OJ上測试通过. 时间限制:1 秒 内存限制 ...

  9. T-SQL基础(7) - 透视,逆透视和分组集

    透视转换: use tempdb;if object_id('dbo.Orders', 'U') is not null drop table dbo.Orders;create table dbo. ...

  10. UVA434 - Matty&#39;s Blocks

    option=com_onlinejudge&Itemid=8&page=show_problem&category=457&problem=375&mosms ...