struts2中标签库分支循环语法详解

15 篇文章 0 订阅
4 篇文章 0 订阅

使用<s:iterator>标签

属性:

Value是从ActionContext中获取的集合key,不需要#

Var:是每次从集合中取值赋值的变量

使用的时候需要加#,#str  比如说需要输出这个变量:

<s:iterator value="strArr" var="str">
	<s:property value="#str"/>
</s:iterator>

循环数组:

java代码:

public String arrLoop() throws Exception {
				
				ActionContext ac = ServletActionContext.getContext();
				//定义一个字符串数组
				String [] strArr = {"renliang","nihao","AA","BB","cc"};
				//将数组加入到action中
				ac.put("strArr", strArr);
				return super.execute();
		}


jsp中的代码:

<s:iterator value="strArr" var="str">
		<s:property value="#str"/>
	
	</s:iterator>

循环list

java代码

public String listLoop() throws Exception {
				
				ActionContext ac = ServletActionContext.getContext();
				//定义一个List集合

				List<String> list = new ArrayList<String>(); 
				
				list.add("aaa");
				list.add("ccc");
				list.add("xxx");
				list.add("bbb");
				list.add("ddd");
				
				ac.put("list", list);
				return super.execute();
		}

jsp中的代码:

<s:iterator value="list" var="plist">
		<s:property value="#plist"/>
	
	</s:iterator>


循环Map

java中的代码

public String mapTest() throws Exception {
			
			ActionContext ac = ServletActionContext.getContext();
			//定义一个Map
			Map<String, Object> pm = new HashMap<String,Object>();
			
			pm.put("person1", "p1");
			pm.put("person2", "p2");
			pm.put("person3", "p3");
			pm.put("person4", "p4");
			pm.put("person5", "p5");
			
			ac.put("pm", pm);
			return super.execute();
			
		}


jsp中的代码:

<s:iterator value="pm" var="p">
		<s:property value="#p"/>
	
	</s:iterator>


如果集合中是对象,同样可以展示出对象的每一项属性

java代码:


public String execute() throws Exception {
			
			ActionContext ac = ServletActionContext.getContext();
			//定义一个list
			
			List<Person> personList = new ArrayList<Person>();
			
			/*
			 * 利用循环创建10个对象
			 */
			for(int i = 0 ; i <10; i++){
				
				Person p = new Person(i, "liange", "火星"+i );
				//将对象加入到list中
				personList.add(p);
				
			}
			//加入action
			ac.put("personList", personList);
			return super.execute();
		}


jsp代码:

<s:iterator value="personList" var="p">
		<h6>可以分开取每个对象单独的属性</h6>
		<s:property value="#p.age"/>
		<s:property value="#p.name"/>
		<s:property value="#p.address"/>
		<hr>
	</s:iterator>



对于对象集合循环

Status属性可以给循环设置参数

           变量:

Index:当前循环的索引号,从0开始

Count:当前循环的顺序号,从1开始

First:是否是第一行

List:是否是最后一行

odd:是否是奇数

even:是否是偶数

begin:从数字几开始

end:到数字几结束

step:步长


<s:iterator value="personList" var="p" status="status">
		<h6>可以分开取每个对象单独的属性</h6>
		<s:property value="'年龄' + #p.age"/>
		<s:property value="'名字' + #p.name"/>
		<s:property value="'地址' + #p.address"/>
		<s:property value="'索引' + #status.index"/>
		<s:property value="'顺序' + #status.count"/>
		<s:property value="'是否第一' + #status.first"/>
		<s:property value="'是否最后' + #status.last"/>
		<s:property value="'是否偶数' + #status.odd"/>
		<s:property value="'是否奇数' + #status.even"/>

		<hr>
	</s:iterator>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值