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 乔丹 布什 克林顿

struts1标签之<logic:iterate>,布布扣,bubuko.com

时间: 2024-10-08 20:04:42

struts1标签之<logic:iterate>的相关文章

struts标签&lt;logic:iterate&gt;的用法

<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 { priv

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

<logic:notEmpty name="sList" scope="request"> <logic:iterate id="element" indexId="index" name="sList"> <tr> <td width="50"><%= index.intValue() + 1 %>.</td> &

struts1吊牌&amp;lt;logic:iterate&amp;gt;

<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 { pri

Struts1 标签库 说明

Struts提供了五个标签库,即:HTML.Bean.Logic.Template和Nested. HTML标签 : 用来创建能够和Struts 框架和其他相应的HTML 标签交互的HTML 输入表单 Bean标签:  在访问JavaBeans 及其属性,以及定义一个新的bean 时使用 Logic标签: 管理条件产生的输出和对象集产生的循环 Template标签:随着Tiles框架包的出现,此标记已开始减少使用 Nested标签:  增强对其他的Struts 标签的嵌套使用的能力 标签的公共特

Struts1 标签库

Struts提供了五个标签库,即:HTML.Bean.Logic.Template和Nested. HTML标签 : 用来创建能够和Struts 框架和其他相应的HTML 标签交互的HTML 输入表单 Bean标签:  在访问JavaBeans 及其属性,以及定义一个新的bean 时使用 Logic标签: 管理条件产生的输出和对象集产生的循环 Template标签:随着Tiles框架包的出现,此标记已开始减少使用 Nested标签:  增强对其他的Struts 标签的嵌套使用的能力 标签的公共特

logic:iterate(转)

logic:iterate <logic:iterate>标记用于在页面中创建一个循环,以此来遍历如数组.Collection.Map这样的对象.该标记的功能强大,在Struts应用的页面中经常使用到.1.对数组进行循环遍历使用<logic:iterate>标记可以用于遍历数组,以下是一段示例代码: <%String[] testArray={"str1","str2","str3"}; pageContext.se

struts1标签-&lt;html:radio&gt; 使用注意事项

struts1标签-<html:radio> 使用注意事项 1.默认选中效果 在后台XxxForm中写入如下代码,可保证默认选中效果实现: @Override public void reset(ActionMapping mapping, HttpServletRequest request) { ve.setBuytaxisf("是");//是否免税交纳属性默认选中效果 super.reset(mapping, request); } jsp代码: <html:r

struts1标签(html:text)

这个标签可能是出现频率最高的标签了. 功能: <html:text/>产生HTML语句: <input type=”text”…> 也就是在页面上产生input类型的显示标签. -------------------------------------------------------------------------------- 其中比较关键的属性property: 是要与后台交互的字段名,在struts1中需要设置对应action的form类,其中property就必须在

使用JSTL标签库替换Struts1中的logic标签

如题所示,在做一个基于SSH框架的实战小项目时,发现不少地方都还在使用logic标签.这个标签不仅我不熟悉,而且在现在看来也显得过时了,因此我就想替换成我熟悉的JSTL标签 比如说,原来是这样的: <logic:present scope="request" name="onSaleGoodsList">      <table border="0">    <s:iterator id="goods&qu