Struts2 doubleselect标签的使用

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

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

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

[java]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. package com.hlx.entity;  
  2.   
  3. public class Province {  
  4.     private int pid;  
  5.     private String pname;  
  6. }  
   (2)城市类(封装setXXX and getXXX)     

[java]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. public class City {  
  2.     private int cid;  
  3.     private String cname;  
  4. }  
    (3)Action类

[java]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. public class ProvinceCity extends ActionSupport {  
  2.   
  3.     // map集合,key映射省份,value映射该省份的城市  
  4.     private Map<Province, List<City>> map;  
  5.   
  6.     public Map<Province, List<City>> getMap() {  
  7.         return map;  
  8.     }  
  9.   
  10.     public void setMap(Map<Province, List<City>> map) {  
  11.         this.map = map;  
  12.     }  
  13.   
  14.   
  15.     @Override  
  16.     public String execute() throws Exception {  
  17.   
  18.         // 江苏省  
  19.         Province pro1 = new Province(1"江苏省");  
  20.   
  21.         // 所在的城市  
  22.         List<City> citys = new ArrayList<City>();  
  23.         citys.add(new City(11"南京"));  
  24.         citys.add(new City(22"常州"));  
  25.         citys.add(new City(33"苏州"));  
  26.   
  27.         // 浙江省  
  28.         Province pro2 = new Province(2"浙江省");  
  29.   
  30.         // 所在的城市  
  31.         List<City> citys1 = new ArrayList<City>();  
  32.         citys1.add(new City(10"杭州"));  
  33.         citys1.add(new City(20"宁波"));  
  34.         citys1.add(new City(30"温州"));  
  35.           
  36.           
  37.         //添加到集合中  
  38.         map = new HashMap<Province, List<City>>();  
  39.         map.put(pro1, citys);  
  40.         map.put(pro2, citys1);  
  41.           
  42.           
  43.   
  44.         return SUCCESS;  
  45.     }  
  46.   
  47.   
  48. }  
  
      (3)JSP页面
[html]  view plain  copy  print ? 在CODE上查看代码片 派生到我的代码片
  1. <style type="text/css">    
  2.        .doubleselect br{    
  3.            display:none;    
  4.    
  5.       }    
  6.  </style>    
  7. </head>  
  8.   
  9.   
  10. <body>  
  11.   
  12.   
  13. <div class="doubleselect">  
  14. <s:form action="doubleSelectPost" name="form1">    
  15.     <s:doubleselect  
  16.      formName="form1"  
  17.      label="省份"   
  18.      name="pid"   
  19.      list="map.keySet()"   
  20.      listKey="pid"  
  21.      listValue="pname"  
  22.      doubleList="map[top]"   
  23.      doubleName="id"  
  24.      doubleListKey="cid"   
  25.      doubleListValue="cname" >  
  26.      </s:doubleselect>  
  27. </s:form>  
  28. </div>    
  29. </body>  
  30. </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" 用城市名称作为标签。

效果如下:

  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值