Struts2 doubleselect标签的使用

一、 Struts2提供了级联下拉选择框doubleselect标签,这对简化诸如省份/城市这样的典型需求的操作是大有好处的.

       如: “省份->城市”的级联菜单。

   (1)省份类(封装setXXX and getXXX)    

package com.hlx.entity;

public class Province {
	private int pid;
	private String pname;
}
   (2)城市类(封装setXXX and getXXX)     

public class City {
	private int cid;
	private String cname;
}
    (3)Action类

public class ProvinceCity extends ActionSupport {

	// map集合,key映射省份,value映射该省份的城市
	private Map<Province, List<City>> map;

	public Map<Province, List<City>> getMap() {
		return map;
	}

	public void setMap(Map<Province, List<City>> map) {
		this.map = map;
	}


	@Override
	public String execute() throws Exception {

		// 江苏省
		Province pro1 = new Province(1, "江苏省");

		// 所在的城市
		List<City> citys = new ArrayList<City>();
		citys.add(new City(11, "南京"));
		citys.add(new City(22, "常州"));
		citys.add(new City(33, "苏州"));

		// 浙江省
		Province pro2 = new Province(2, "浙江省");

		// 所在的城市
		List<City> citys1 = new ArrayList<City>();
		citys1.add(new City(10, "杭州"));
		citys1.add(new City(20, "宁波"));
		citys1.add(new City(30, "温州"));
		
		
		//添加到集合中
		map = new HashMap<Province, List<City>>();
		map.put(pro1, citys);
		map.put(pro2, citys1);
		
		

		return SUCCESS;
	}


}
  
      (3)JSP页面

<style type="text/css">  
       .doubleselect br{  
    	   display:none;  
 
      }  
 </style>  
</head>


<body>


<div class="doubleselect">
<s:form action="doubleSelectPost" name="form1">  
	<s:doubleselect
	 formName="form1"
	 label="省份" 
	 name="pid" 
	 list="map.keySet()" 
	 listKey="pid"
	 listValue="pname"
	 doubleList="map[top]" 
	 doubleName="id"
	 doubleListKey="cid" 
	 doubleListValue="cname" >
	 </s:doubleselect>
</s:form>
</div>  
</body>
</html>

属性说明:

  • formName: 对应的表单名称。
  • label: 该级联下拉列表的标签。
  • name: 第一个下拉列表的名称。name="pId"
  • id: 第一个下拉列表的id名称。
  • list: 指定用于输出第一个下拉列表框中选项的集合。本示例 list="map.keySet()" 是将map的键(即省份)作为第一个下拉列表选项。
  • listKey: 指定集合元素中的某个属性作为第一个下拉列表框的value。listKey="pId"是将省份d作为第一个下拉列表的值,在提交该表单时,参数名就是pId,值为listKey的值。如“pId=1”
  • listValue:指定集合元素中的某个属性作为第一个下拉框的标签。listValue="pname" 用省份名称作为标签,即下拉列表显示出来的值。
  • doubleName: 第二个下拉列表的名称。
  • doubleId: 第二个下拉列表的id名称。
  • doubleList: 指定用于输出第二个下拉列表框中选项的集合。本示例 map[top] 是将map的值(即城市)作为第二个下拉列表选项。
  • doubleListKey: 指定集合元素中的某个属性作为第二个下拉列表框的value。doubleListKey="cId"是将城市id作为第二个下拉列表的值。
  • doubleListValue: 指定集合元素中的某个属性作为第二个下拉框的标签。doubleListValue="cname" 用城市名称作为标签。

效果如下:

  

你可能感兴趣的:(Struts2 doubleselect标签的使用)