博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java WEB开发时struts标签 显示set内容
阅读量:4125 次
发布时间:2019-05-25

本文共 3290 字,大约阅读时间需要 10 分钟。

在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:iterateid="a"name="list"type="example.User">
  2. </logic:iterate>

"id"是在iterate循环的时候使用的内部循环变量,指代list中的一个实例,name指代的是在request、session、response等中的变量名

<bean:writename="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. 0redgreenblue
  2. 1中国美国法国
  3. 2乔丹布什克林顿

转载地址:http://otlpi.baihongyu.com/

你可能感兴趣的文章
Qt文件夹选择对话框
查看>>
QT中 QString转wchar_t*的方法
查看>>
微信小程序中关于get,setStorage与get,setStorageSync的一个小坑
查看>>
微信小程序 wx.redirectTo 失效的问题
查看>>
Qt使用正则表达式
查看>>
C++和QT用正则过滤汉字
查看>>
JavaScript Object转字符串
查看>>
JavaScript 日期对象互转String对象,葫芦娃葫芦娃~
查看>>
QT可执行程序的图标
查看>>
QVariant转换与QString互转 葫芦娃 葫芦娃~
查看>>
pandas DataFrame 分组求和
查看>>
Pandas,删除矩阵中带有Nan的数据
查看>>
C++ for循环的几种使用方法
查看>>
C++产随机数
查看>>
kali linux 中文出现乱码问题的解决
查看>>
java中的UUID.randomUUID()函数对应Python中的uuid函数
查看>>
TCP/IP详解(1卷)第一章--协议总层次图
查看>>
TCP/IP详解 卷1 链路层图例和链路层上的各个协议的介绍
查看>>
TCP/IP详解 卷1 IP基本介绍和IP数据报图文介绍
查看>>
TCP/IP详解 卷1 IP路由选择
查看>>