在action中使用sql按目錄的方式查詢出部門記錄,其中包括部門名稱,部門ID,部門父ID。頂頭的記錄的部門父ID必須為-1,查詢語句如: < link href ="<%=request.getContextPath()%>/gdnumweb/css/dtree.css" rel ="stylesheet" type ="text/css" >
< body > < script type ="text/javascript" src ="<%=request.getContextPath()%>/gdnumweb/js/dtree.js" ></ script > < div class ="dtree" > < p >< a href ="javascript: tree.openAll();" > 展開所有 </ a > | < a href ="javascript: tree.closeAll();" > 關(guān)閉所有 </ a ></ p > < script language ="javascript" type ="text/javascript" > tree = new dTree(‘tree‘); < logic:iterate id = " dept " name = " list " > tree.add( " <bean:write name= " dept " property= " dept_id " /> " , " <bean:write name= " dept " property= " parent_id " /> " , " <bean:write name= " dept " property= " dept_name " /> " ,‘ <%= path %>/ gdnumUserDept. do ? method = getDeptUserInfo & deptNo =< bean:write name = " dept " property = " dept_id " /> ‘,‘‘,‘mainframe‘); </ logic:iterate > document.write(tree); </ script > 在組合框中輸出樹形目錄 獲取列表的java方法 //提取當(dāng)前用戶的部門下拉
public List getSourceDept(String deptNo) { List list = null; Connection con = CommonUtils.currentSession().connection(); ResultSet rs = null; ResultSetMetaData rsmd = null; java.sql.PreparedStatement ps = null; String sql = "select deptno,(tools.buildTree(level)||deptname) deptname from sys_dept " + "connect by parent_deptno=prior deptno " + "start with deptno=?"; HashMap map = null; try { ps = con.prepareStatement(sql); ps.setString(1, deptNo); rs = ps.executeQuery(); //System.out.println("rs.size:" + rs.getFetchSize()); rsmd = rs.getMetaData(); list = new ArrayList(); while (rs.next()) { map = new HashMap(); for (int i = 1; i <= rsmd.getColumnCount(); i++) { map.put(rsmd.getColumnName(i).toLowerCase(), rs.getString(i)); } list.add(map); } rs.close(); } catch (Exception ex) { log.error("提取當(dāng)前用戶的部門下拉出錯(cuò)com.unicom.gzmas.reports.bo.getSourceDept:" + ex); } finally { CommonUtils.closeSession(); } return list; } 頁面輸出的代碼 <select id="mbackdept"> <!-- 部門 -->
構(gòu)造樹的存儲(chǔ)過程<option value="all">-----全部----</option> <logic:iterate id="l" name="target"> <option value="<bean:write name="l" property="deptno"/>"><bean:write name="l" property="deptname"/></option> </logic:iterate> </select> /*構(gòu)造樹*/
Function Buildtree(In_Level In Number) Return Varchar2 As Result Varchar2(4000); Begin If In_Level = 1 Then Return Null; End If; Return ‘|‘ || Incstring(‘-‘, (In_Level - 1) * 2); End; |
|