⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logic-iterate.jsp

📁 Spring +Web 的完整 MyEclipse 项目源码,使用者可以作为入门材料可以在此基础上深入学习
💻 JSP
字号:
<%@ page contentType="text/html;charset=GB2312" import="java.util.*"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
<head>
<html:base/>
<title>&lt;logic:iterate&gt;</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body bgcolor="white">

<h1>&lt;logic:iterate&gt;</h1>

<p>&lt;logic:iterate&gt;标记用于在页面中创建一个循环,以此来遍历如数组,Collection,Map这样的对象。该标记的功能强大,在
Struts应用的页面中经常使用到。</p>

<h2>对数组进行循环遍历</h2>
<p>使用&lt;logic:iterate&gt;标记可以用于遍历数组。以下是一段示例代码:</p>
<font class="CodeStyle">
&lt;%<br>
&nbsp;&nbsp;&nbsp;&nbsp;String [] testArray1 = {"str0","str1","str2","str3","str4","str5","str6"};<br>
&nbsp;&nbsp;&nbsp;&nbsp;pageContext.setAttribute("test1",testArray1);<br>
%&gt;<br>
&lt;logic:iterate id="array1" name="test1"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:write name="array1"/&gt;<br>
&lt;/logic:iterate&gt;<br>
</font>

<p>在上面的代码中,首先定义了一个字符串数组,并为其初始化。接着,将该数组存入pageContext对象中,命名为test1。然后使用
&lt;logic:iterate&gt;标记的name属性指定了该数组,并使用id来引用它,同时使用&lt;bean;write&gt;标记来将其显示出来。运行
效果如下所示:</p>

<%
	String [] testArray1 = {"str0","str1","str2","str3","str4","str5","str6"};
	pageContext.setAttribute("test1",testArray1);
%>
<logic:iterate id="array1" name="test1">
	<bean:write name="array1"/><br>
</logic:iterate>

<p>分析一下上面的代码,可知&lt;logic:iterate&gt;标记的name属性用于指定某一存在的对象,id属性定义一个新的对象来引用name
属性所指定的对象。再使用&lt;bean:write&gt;标记的name属性来引用了id属性所定义的新的对象,将数组的值打印出来。另外,
还可以通过length属性来指定输出元素的个数。如下面的代码。</p>
<font class="CodeStyle">
&lt;logic:iterate id="array1" name="test1" length="3" offset="2"&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:write name="array1"/&gt;<br>
&lt;/logic:iterate&gt;<br>
</font>

<p>其中length属性指定了输出元素的个数,offset属性指定了从第几个元素开始输出,如此处为2则表示从第三个元素开始输出。所以
该代码的运行结果应当从str2一直输出到str4。实际运行效果如下:</p>

<logic:iterate id="array1" name="test1" length="3" offset="2">
	<bean:write name="array1"/><br>
</logic:iterate>

<p>另外,该标记还有一个indexId属性,它指定一个变量存放当前集合中正被访问的元素的序号,如下例:</p>
<font class="CodeStyle">
&lt;logic:iterate id="array1" name="test1" length="3" offset="2" indexId="number"&gt;<br>
	&lt;bean:write name="number"/&gt;:<br>
	&lt;bean:write name="array1"/&gt;<br>
&lt;/logic:iterate&gt;<br>
</font>

<p>运行效果如下所示:</p>

<logic:iterate id="array1" name="test1" length="3" offset="2" indexId="number">
	<bean:write name="number"/>:
	<bean:write name="array1"/><br>
</logic:iterate>

<p>可以看出,序号已经加在了输出字符串的前面。</p>

<h2>对HashMap进行循环遍历</h2>

<p>以下是一段使用&lt;logic:iterate&gt;标记遍历HashMap的代码。</p>
<font class="CodeStyle">
&lt;%<br>
&nbsp;&nbsp;&nbsp;&nbsp;HashMap countries = new HashMap();<br>
&nbsp;&nbsp;&nbsp;&nbsp;countries.put("country1","中国");<br>
&nbsp;&nbsp;&nbsp;&nbsp;countries.put("country2","美国");<br>
&nbsp;&nbsp;&nbsp;&nbsp;countries.put("country3","英国");<br>
&nbsp;&nbsp;&nbsp;&nbsp;countries.put("country4","法国");<br>
&nbsp;&nbsp;&nbsp;&nbsp;countries.put("country5","德国");<br>
&nbsp;&nbsp;&nbsp;&nbsp;pageContext.setAttribute("countries",countries);<br>
%&gt;<br>
&lt;logic:iterate id="country" name="countries"&gt;<br>
&lt;bean:write name="country" property="key"/&gt;:
&lt;bean:write name="country" property="value"/&gt;<br>
&lt;/logic:iterate&gt;
</font>

<p>上面的代码首先定义了一个HashMap的对象,并向其中添加了5个元素,再把它存入pageContext对象中,命名为countries。
令&lt;logic:iterate&gt;标记的name属性等于"countries",id为country。再让&lt;bean:write&gt;标记的name属性和&lt;logic:iterate&gt;
标记的id属性相对应,令property一个为"key",一个为"value"。便会有以下输出结果:</p>

<%
	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"/><br>
</logic:iterate>

<p>从效果上看出,&lt;logic:iterate&gt;标记确定遍历了HashMap的每一个元素,但它并未按添加的顺序将其显示出来。这是因为HashMap
是无序存放的。</p>

<h2>对List进行循环遍历</h2>
<p>&lt;logic:iterate&gt;标记也可以对List型的对象进行遍历,以下是一段示例代码。</p>
<font class="CodeStyle">
&lt;%<br>
	ArrayList list1 = new ArrayList();<br>
	list1.add("str1");<br>
	list1.add("str2");<br>
	list1.add("str3");<br>
	list1.add("str4");<br>
	list1.add("str5");<br>
	pageContext.setAttribute("testlist",list1);<br>
%&gt;<br>
&lt;logic:iterate id="showlist" name="testlist" indexId="index"&gt;<br>
&lt;bean:write name="index"/&gt:<br>
&lt;bean:write name="showlist"/&gt<br>
&lt;/logic:iterate&gt<br>
</font>

<p>运行效果如下:</p>
<%
	ArrayList list1 = new ArrayList();
	list1.add("str1");
	list1.add("str2");
	list1.add("str3");
	list1.add("str4");
	list1.add("str5");
	pageContext.setAttribute("testlist",list1);
%>
<logic:iterate id="showlist" name="testlist" indexId="index">
<bean:write name="index"/>:
<bean:write name="showlist"/><br>
</logic:iterate>

<h2>嵌套遍历</h2>
<p>&lt;logic:iterate&gt;标记还可以进行嵌套遍历,以下是一段代码示例:</p>
<font class="CodeStyle">
&lt;%<br>
	String [] colors = {"red","green","blue"};<br>
	String [] countries1 = {"中国","美国","法国"};<br>
	String [] persons = {"乔丹","布什","克林顿"};<br>
	ArrayList list2 = new ArrayList();<br>
	list2.add(colors);<br>
	list2.add(countries1);<br>
	list2.add(persons);<br>
	pageContext.setAttribute("list2",list2);<br>
%&gt;<br>
&lt;logic:iterate id="first" name="list2" indexId="numberfirst"&gt;<br>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:write name="numberfirst"/&gt;:<br>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;logic:iterate id="second" name="first"&gt;<br>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;bean:write name="second"/&gt;<br>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/logic:iterate&gt;<br>
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;br&gt;<br>
&lt;/logic:iterate&gt;<br>
</font>

<p>上面的代码使用了双重循环来遍历一个ArrayList对象,这个ArrayList对象内的每一个元素又是一个String型的数组。以下是运行效
果:</p>

<%
	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>

<p>



<a href="index.jsp">返回主页面</a>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -