Struts2 DoubleList 用法

Action 代码:

 

首有个Province 类 代码:

 

package tutorial;

public class Province {
 public Province(int id, String name) {
  this.id =id;
  this.name = name;
 }
 public Province() {
 }
 
 private int id;
 private String name;
 
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }

}

 


然后有个City 类 代码:

package tutorial;

public class City {
 private int id;
 private String name;
 private int provinceId;
 
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getProvinceId() {
  return provinceId;
 }
 public void setProvinceId(int provinceId) {
  this.provinceId = provinceId;
 }

}

最后Action

 

package tutorial;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.opensymphony.xwork2.ActionSupport;

public class DoubleListAction extends ActionSupport {

 /**
  *
  */
 private static final long serialVersionUID = -6820485548014626629L;

 // 省份的集合
 private List<Province> provinceList;

 // 省下的城市的集合, 这里的key值是省份的ID,List<City> 是省下的城市
 private Map<Integer, List<City>> cityMap;

 public String execute() {
  provinceList= new ArrayList<Province>();

        Province province;
        province = new Province();
        province.setId(1);
        province.setName("山西省");
        provinceList.add(province);

        province = new Province();
        province.setId(2);
        province.setName("陕西省");
        provinceList.add(province);

        province = new Province();
        province.setId(3);
        province.setName("河南省");
        provinceList.add(province);


        cityMap = new HashMap<Integer, List<City>>();

        List<City> cityList = new ArrayList<City>();
        City city;
        city = new City();
        city.setId(1);
        city.setName("太原市");
        city.setProvinceId(1);
        cityList.add(city);

        city= new City();
        city.setId(2);
        city.setName("大同市");
        city.setProvinceId(1);
        cityList.add(city);
      
        city= new City();
        city.setId(3);
        city.setName("长治市");
        city.setProvinceId(1);
        cityList.add(city);

        cityMap.put(1, cityList);

        cityList = new ArrayList<City>();
        city= new City();
        city.setId(4);
        city.setName("西安市");
        city.setProvinceId(2);
        cityList.add(city);

        city= new City();
        city.setId(5);
        city.setName("汉中市");
        city.setProvinceId(2);
        cityList.add(city);
      
        city= new City();
        city.setId(6);
        city.setName("咸阳市");
        city.setProvinceId(2);
        cityList.add(city);

        cityMap.put(2, cityList);
      
        cityList = new ArrayList<City>();
        city= new City();
        city.setId(7);
        city.setName("郑州市");
        city.setProvinceId(3);
        cityList.add(city);

        city= new City();
        city.setId(8);
        city.setName("开封市");
        city.setProvinceId(3);
        cityList.add(city);
      
        city= new City();
        city.setId(8);
        city.setName("洛阳市");
        city.setProvinceId(3);
        cityList.add(city);

        cityMap.put(3, cityList);

        return SUCCESS;

     }

 public Map<Integer, List<City>> getCityMap() {
  return cityMap;
 }

 public void setCityMap(Map<Integer, List<City>> cityMap) {
  this.cityMap = cityMap;
 }

 public List<Province> getProvinceList() {
  return provinceList;
 }

 public void setProvinceList(List<Province> provinceList) {
  this.provinceList = provinceList;
 }

}

 

struts.xml 配置:

 

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <include file="struts-default.xml"/>
    <package name="doubleListDemo" extends="struts-default">
     <action name="doubleSelect" class="tutorial.DoubleListAction">
      <result>tagsDoubleSelect.jsp</result>
     </action>
    </package>

</struts>

 

页面代码 :

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
 pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>Struts2 级联下拉菜单示例</title>
 </head>
 <body>

  <s:form name="f1">
  <s:set name="foobar"
    value="#{'Java': {'Spring', 'Hibernate', 'Struts 2'}, '.Net': {'Linq', ' ASP.NET 2.0'}, 'Database': {'Oracle', 'SQL Server', 'DB2', 'MySQL'}}" />
  
  <s:doubleselect list="#foobar.keySet()" doubleName="technology"
    doubleList="#foobar[top]" label="Technology" />
  
  
  <hr/>
   <s:doubleselect list="provinceList" listKey="id" listValue="name"
    doubleName="cityId" doubleList="cityMap.get(top.id)"
    doubleListKey="id" doubleListValue="name" />
   
   
    <hr />
   
  </s:form>
  
  <!--
  此处要注意的是top的用法,top代表的就是list当前选中的对象, 所以top.id对应的就是当前选中的Province对象中的ID, cityMap.get(top.id)即根据当前选中的Province对象中的ID来取出第二级下拉框的数据集合。
   -->
 </body>
</html>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值