Java WEB開發時struts標籤 顯示set內容

在struts中有好多的標籤方便開發,好比<logic:iterate>標籤,能夠很好的顯示list的內容:html

(一)對List的循環遍歷:java

  1.先定義一個User類:數組

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;     
}     
   
}

 

  2.創建jsp文件如:session

<%@ 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"/> 或者${a.name} 或者 ${a["name"]}    
   
<td/><td width="50%">     
   
password: <bean:write name="a" property="password"/>     
   
</td></tr>     
   
</logic:iterate> 
</table></body></html>

 

 這裏
  1. <logic:iterate id="a" name="list" type=" example.User "> 
  2. </logic:iterate> 

 "id"是在iterate循環的時候使用的內部循環變量,指代list中的一個實例,name指代的是在request、session、response等中的變量名jsp

  <bean:write name="a" property="name"/>標記是用來顯示的,也可用EL表達式如:${a.name}或${a["name"]}this

      注:EL 提供「.「和「[ ]「兩種運算符來存取數據。
     當要存取的屬性名稱中包含一些特殊字符,如.或?等並不是字母或數字的符號,就必定要使用「[ ]「。例如:
         ${user.My-Name}應當改成${user["My-Name"] }
     若是要動態取值時,就能夠用「[ ]「來作,而「.「沒法作到動態取值。例如:
         ${sessionScope.user[data]}中data 是一個變量
spa

(二)對數組進行循環遍歷:code

   

<%    
String[] testArray={"str1","str2","str3"};     
pageContext.setAttribute("test",testArray);     
%>   
<logic:iterate id="show" name="test">     
<bean:write name="show"/>
或者${show}
</logic:iterate>

 

 (三)對集合Map的輸出htm

如:有數據開發

HashMap<String,TestIterate> hm = new HashMap<String,TestIterate>();
hm.put("11",new TestIterate("aa",11));
hm.put("22",new TestIterate("bb",22));
hm.put("33",new TestIterate("cc",33));
hm.put("44",new TestIterate("dd",11));
hm.put("55",new TestIterate("ee",22));
hm.put("66",new TestIterate("ff",33));
	
request.setAttribute("hm",hm);

 

則頁面輸出可寫成:

 

<logic:iterate id="h" name="hm" scope="request">
     name:<bean:write name="h" property="value.name"/> age:<bean:write name="h" property="value.age"/><br/>
</logic:iterate>

 

或者用EL寫做:

 

<logic:iterate id="h" name="hm" scope="request" length="2" offset="1">
   ${h["key"] } + ${h.value["name"] }<br/>
</logic:iterate>

 

其中length屬性指定了輸出元素的個數,offset屬性指定了從第幾個元素開始輸出,如此處爲1,則表示從第二個元素開始輸出

另外,該標記還有一個indexId屬性,它指定一個變量存放當前集合中正被訪問的元素的序號,如:
程序代碼:

<logic:iterate id="h" name="hm" scope="request"  indexId="number">
   第${number}個:${h["key"] } + ${h.value["name"] }<br/>
</logic:iterate>

 

(四)嵌套遍歷:

程序代碼:

 

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

運行效果:

  1. 0 red green blue    
  2. 1 中國 美國 法國    
  3. 2 喬丹 布什 克林頓    
相關文章
相關標籤/搜索