JSP:javascript 和 struts部分 <table width="100%" border="0" cellspacing="0" cellpadding="6"> <tr> <td> <span class="txt1">三级单位:</span> <html:select property="oilarea" style="width:182" styleId="area" οnchange="javascript:fillWell()"> <c:forEach var="lessonmameshow" items="${requestScope.team1}"> <html:option value="${lessonmameshow.id}" ><c:out value="${lessonmameshow.name}"/></html:option> </c:forEach> </html:select> <span class="txt1">队伍:</span> <html:select property="oilwell" style="width:182" styleId="well"> <% String id = (String)request.getAttribute("org"); if(request.getAttribute("org")!= null &&!"".equals(request.getAttribute("org"))){ List l = (List)request.getAttribute("ow"); for(int i=0;i<l.size();i++){ Orgteam org = (Orgteam)l.get(i); %> <% if(id.equals(org.getId()+"")){ %> <option value="<%=org.getId()%>" selected="selected"><c:out value="<%=org.getName()%>"/></option> <% }else{ %> <option value="<%=org.getId()%>" ><c:out value="<%=org.getName()%>"/></option> <% } } } %> </html:select> </td> </tr> </table> <SCRIPT LANGUAGE="javascript"> <% List list1 =(List) request.getAttribute("team1");%> var wellIds = new Array(<%=list1.size()%>) var wellNames = new Array(<%=list1.size()%>) <% for(int i=0;i<list1.size();i++){ Orgthreeorgs area = (Orgthreeorgs)list1.get(i); String hql = "from huanxl.hibernate.db.Orgteam as o where o.threeorgsid="+area.getId(); DataUtil du = new DataUtil(); List list = du.findfield(hql); du.closeSession(); //System.out.println(">>>>>>>>>>>>>>>>>>>..."+wells.size()); %> wellIds[<%=i%>] = new Array(<%=list.size()%>) wellNames[<%=i%>] = new Array(<%=list.size()%>) <% Iterator it = list.iterator(); int m =0 ; while(it.hasNext()){ Orgteam well = (Orgteam)it.next(); %> wellIds[<%=i%>][<%=m%>] ='<%=well.getId()%>'; wellNames[<%=i%>][<%=m%>] ='<%=well.getName()%>'; <% m++; } } %> function fillWell(){ initWell(document.getElementById('area').selectedIndex,0); } function initWell(index,selectid){ var well = document.getElementById('well'); well.options[0] = null; well.options.length = 0; for(i=0;i<wellIds[index].length;i++){ well.options[i] = new Option(wellNames[index][i], wellIds[index][i]); } well.options[selectid].selected=true; } </SCRIPT> FORM部分 //查询三级公司提交到页面 String hql_orgthreeorgs = "from huanxl.hibernate.db.Orgthreeorgs"; DataUtil du = new DataUtil(); List orgthreeorgs = du.findfield(hql_orgthreeorgs); du.closeSession(); request.removeAttribute("team1"); request.setAttribute("team1", orgthreeorgs); //页面第一次访问时,初始化第三级公司的 第一个队伍 Orgthreeorgs gs = (Orgthreeorgs) orgthreeorgs.get(0); String sq1 = "from huanxl.hibernate.db.Orgteam where threeorgsid =" + gs.getId(); DataUtil d = new DataUtil(); List ow = d.findfield(sq1); Orgteam org = (Orgteam) ow.get(0); d.closeSession(); request.removeAttribute("ow"); request.setAttribute("ow", ow); request.removeAttribute("org"); request.setAttribute("org", org.getId()+""); / Action部分 //以下是给下拉列表赋值 staff_input_hzForm sih = (staff_input_hzForm) form;// 创建FORM对象 String oilwell = sih.getOilwell();// 获得队伍信息 String hql_orgteam = "from huanxl.hibernate.db.Orgteam where id="+oilwell;//查询三级单位 Orgteam ot = (Orgteam)du.findonly(hql_orgteam); request.removeAttribute("org"); request.setAttribute("org", oilwell); String hql_orgteams = "from huanxl.hibernate.db.Orgteam where threeorgsid =" + ot.getThreeorgsid().getId();//查询三级单位下所有队伍 List orgteams = du.findfield(hql_orgteams); request.removeAttribute("ow"); request.setAttribute("ow", orgteams); 备注 三级单位和队伍的联动,三级单位与队伍关系是一对多。