Struts2实现2级级联下拉列表

Struts2实现2级级联下拉列表
package zjh.struts2.action;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import zjh.struts2.db.DataBase;
import zjh.struts2.vo.GoodsTypes;

public class GoodsTypeList {
DataBase db = new DataBase();
private List<GoodsTypes> bigType ;//商品大类别,
private List<GoodsTypes> smallType;//商品小类别
private Map<Integer,List<GoodsTypes>> types;//把商品类别放到HashMap中,建立大类别和小类别的键-值关系

public List<GoodsTypes> getBigType() {
  return bigType;
}
public List<GoodsTypes> getSmallType() {
  return smallType;
}
public Map<Integer, List<GoodsTypes>> getTypes() {
  return types;
}
public GoodsTypeList() {

  bigType = new ArrayList<GoodsTypes>();
   types = new HashMap<Integer,List<GoodsTypes>>();
  
  String sql1 = "select * from goods_bigType";//从大类别表中取出所有信息
  ResultSet rs1 = db.query(sql1);
  
  try {
   while(rs1.next()) {
    int gb_id = Integer.parseInt(rs1.getString("gb_id"));
    String gb_name = rs1.getString("gb_name");
    smallType = new ArrayList<GoodsTypes>();
   String sql2 = "select * from goods_smallType where gb_id = '"+gb_id+"' ";//从小类别表中取出大类别对应的小类别
    ResultSet rs2 = db.query(sql2);
     String  init_gs_name[] = null;//定义初始化时大类别对应的小类别
    while (rs2.next()) {
     int gs_id = Integer.parseInt(rs2.getString("gs_id"));
     String gs_name = rs2.getString("gs_name");
     GoodsTypes gs_type = new GoodsTypes(gs_id,gs_name);
     smallType.add(gs_type);
     init_gs_name= new String[]{gs_name};
    }
    
    GoodsTypes gb_type = new GoodsTypes(gb_id,gb_name,init_gs_name[0]);
     bigType.add(gb_type);
     types.put(gb_id, smallType);
    
   }
  
  } catch (SQLException e) {
   e.printStackTrace();
  }
}
  
}
对应的struts2标签
<s:doubleselect  name="goodstype.gb_name"
list="#typelist.bigType" listKey="gb_id"
listValue="gb_name" doubleList="#typelist.types[gb_id]"
doubleName="goodstype.gs_name" doubleListKey="gs_id"
doubleListValue="gs_name"  cssStyle="color: blue;width:100"
  doubleCssStyle=" color: blue;width:100" />

你可能感兴趣的:(java,sql)