Java WEB开发时struts标签 显示set内容

在struts中有好多的标签方便开发,比如<logic:iterate>标签,可以很好的显示list的内容:

(一)对List的循环遍历:

  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文件如:

<%@ 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等中的变量名

  <bean:write name="a" property="name"/>标记是用来显示的,也可用EL表达式如:${a.name}或${a["name"]}

      注:EL 提供“.“和“[ ]“两种运算符来存取数据。
     当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用“[ ]“。例如:
         ${user.My-Name}应当改为${user["My-Name"] }
     如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如:
         ${sessionScope.user[data]}中data 是一个变量

(二)对数组进行循环遍历:

   

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

 

 (三)对集合Map的输出

如:有数据

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

 

 

你可能感兴趣的:(java,bean,String,struts,web开发,list)