小谈一下s:doubleselect标签的用法

      查看Apache Struts2的帮助文档,关于对s:doubleselect标签的介绍太肤浅,根本不能满足实质的需要.通过文档及网络上的一些介绍,发现文字介绍太繁琐,不如举例说明它的使用方法要简单得多.

      首先要保证两个有关联关系的对象:

      学生类,Student.java

public class Student {
	public Integer id;
	private String name;
	private Clazz clazz;
	public Student(Integer id,String name,Clazz clazz) {
		this.id = id;
		this.name = name;
		this.clazz = clazz;
	}
	//getter and setter...
}

     班级类,Clazz.java

public class Clazz {
	public Integer id;
	private String className;
	public Clazz(Integer id,String className) {
		this.id = id;
		this.className = className;
	}
	//getter and setter...
}

     Action中的execute方法可以这样写:

public String execute() throws Exception {
		Clazz clazz1 = new Clazz(1,"一年级");
		Clazz clazz2 = new Clazz(1,"二年级");
		List clazzList = new ArrayList();
		clazzList.add(clazz1);clazzList.add(clazz2);
		
		Student user1 = new Student(1,"Tim",clazz1);
		Student user2 = new Student(1,"Kitty",clazz1);
		List userList1 = new ArrayList();
		userList1.add(user1);userList1.add(user2);
		
		Student user3 = new Student(1,"Peter",clazz2);
		Student user4 = new Student(1,"Tom",clazz2);
		List userList2 = new ArrayList();
		userList2.add(user3);userList2.add(user4);
		
		Map map = new HashMap();
		map.put(clazz1, userList1);map.put(clazz2, userList2);//理解此处很重要
		
		request.setAttribute("clazzList", clazzList);
		request.setAttribute("map", map);
		
		return "success";
	}

 

标签可以这配置:

<s:doubleselect 
	list="#request.clazzList" 
	listKey="id" 
	listValue="className" 
   	doubleName="userId" 
   	doubleId="userId"
   	doubleList="#request.map.get(top.id)" <!--  此处很重要 -->
   	doubleListKey="id" 
   	doubleListValue="name"/>

 

显示效果就是第一个下拉式列表会出现"一年级","二年级",当选择"一年级"时第二个下拉式列表会显示"Tim"和"Kitty",当选择"二年级"时,则会显示"Peter"和"Tom".当把此标签放到form表单里,提交到后台时传递的是一个参数名叫"userId"的字符串数据,即此名字由 doubleName 指定,而get(top.id)的意思是用从第一个下拉式列表中选定的数据来联动显示第二个下拉式列表中的数据(联动数据通过后台代码"map.put(clazz1, userList1);map.put(clazz2, userList2);"来完成).

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值