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" />
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" />