servlet:
request.setAttribute("typeList", DaoFactory.getTestTypeDaoInstance().find());
request.getRequestDispatch("type_add.jsp").forward(request,response);
jsp:
<select name="maxTypeId" id="maxTypeId" style="vertical-align:middle;width:147px;" onchange="return F_super(this.value);">
<option value="0">请选择</option>
<c:forEach var="typeMap" items="${typeList}">
<c:forEach var="me" items="${typeMap}">
<c:set var="maxType" value="${me.key}"></c:set>   
<option value="${maxType.typeId}'">'${maxType.typeName }'</option>
</c:forEach>
</c:forEach>
</select>
 

解决方案 »

  1.   

    <c:forEach var="me" items="${typeMap}">
    这句有问题么?你把items="${typeMap}"改为items="${typeList"
      

  2.   

    这个是这样的``
    find()方法:
    public List find() {
    List <HashMap> list =new ArrayList<HashMap>();
    HashMap<Integer,ArrayList<GoodType>> tmpMap=new HashMap<Integer,ArrayList<GoodType>>();
    if(this.conn!=null){
    PreparedStatement pstmt=null;
    ResultSet rs=null;
    String sql="select * from tb_good_types";
    try{
    pstmt=conn.prepareStatement(sql);
    rs=pstmt.executeQuery();
    if(rs.next()){
    GoodType goodType=new GoodType();
    goodType.setPtypeId(rs.getInt("ptypeId"));
    goodType.setTypeId(rs.getInt("typeId"));
    goodType.setTypeName(rs.getString("typeName"));
    if(goodType.getPtypeId()==0){ //ptypeId=0表无父类(于admin_addtype.jsp中父类别的列表框设定)
    HashMap<GoodType,ArrayList> maxType=new HashMap<GoodType,ArrayList>();
    ArrayList<GoodType> minList=new ArrayList<GoodType>();
    maxType.put(goodType, minList);
    list.add(maxType);
    tmpMap.put(goodType.getTypeId(), minList);
    }else{
    tmpMap.get(goodType.getPtypeId()).add(goodType);
    }
    }
    }catch(Exception e){
    e.printStackTrace();
    用的一个List<HashMap>装