您的位置:首页 > 编程语言 > Java开发

Struts2 doubleselect标签的使用

2016-03-23 14:24 405 查看
一、 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" 用城市名称作为标签。

效果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: