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 乔丹 布什 克林顿    
相关文章
相关标签/搜索