의 초기 확장 수준을 나타냅니다.
3. TreeSelector 이벤트 핸들러 함수 생성
function treeSelectFired() {
// treeSelector에 대한 참조 가져오기 선택한 노드를 가져옵니다.
var treeSelector = dojo.widget .manager.getWidgetById('treeSelector')
var treeNode = treeSelector.selectedNode
// songDisplay div에 대한 참조 가져오기
var hostDiv = document.getElementById("songDisplay");
var isFolder = treeNode['isFolder'];
//alert(isFolder)
if (!isFolder) {
var song = treeNode ['title'];
var url = treeNode[ 'url'];
link(url);
} else {
} }
4. treeSelector에 대한 이벤트 핸들러 함수
function init() { > //treeSelector에 대한 참조 가져오기
var treeSelector = dojo.widget.manager.getWidgetById('treeSelector')
//선택 이벤트 연결 treeSelectFired()
dojo .event.connect(treeSelector,'select','treeSelectFired')
}
dojo.addOnLoad(init);
二、主要java代码及数据结构
1、Gnmk.java中tree的属性
private String id;
private String gnmkdm; //功能模块代码
private String gnmksm; //功能模块说明
private String gnmktb; //功能模块图标
private String gnmklj; //功能模块路径
private String gnmkmc; //功能模块名称
private String gnmksj; //功能模块上级代码
private String gnmkbz; //功能模块标志(‘N'为叶节点)
2、HSQLDB内存数据库加载SQL(db.sql)
CREATE TABLE GNMK (ID VARCHAR, GNMKDM VARCHAR, GNMKMC VARCHAR, GNMKLJ VARCHAR, GNMKTB VARCHAR, GNMKBZ VARCHAR, GNMKSJ VARCHAR);
INSERT INTO GNMK VALUES ('d098a59f0b765c30010b765d6b780001', '01', '一级目录1', null, 'system.gif', 'Y', '');
INSERT INTO GNMK VALUES ('d098a59f0b765e68010b765fda830001', '0101', '二级目录1', 'cxtjAction.do', 'system.gif', 'N', '01');
INSERT INTO GNMK VALUES ('d098a59f0b765e68010b765fda830001', '0102', '二级目录2', 'cxtjAction.do', 'system.gif', 'N', '01');
INSERT INTO GNMK VALUES ('d098a59f0b765c30010b765d6b780002', '02', '一级目录2', null, 'system.gif', 'Y', '');
INSERT INTO GNMK VALUES ('d098a59f0b765e68010b765fda830002', '0201', '二级目录1', 'cxtjAction.do', 'system.gif', 'N', '02');
INSERT INTO GNMK VALUES ('d098a59f0b765e68010b765fda830002', '0202', '二级目录2', 'cxtjAction.do', 'system.gif', 'Y', '02');
INSERT INTO GNMK VALUES ('d098a59f0b765e68010b765fda830002', '020201', '三级目录1', 'cxtjAction.do', 'system.gif', 'N', '0202');
INSERT INTO GNMK VALUES ('d098a59f0b765e68010b765fda830002', '020202', '三级目录2', 'cxtjAction.do', 'system.gif', 'N', '0202');
3、TreeServlet .java主要代码,在getGnmkByParent(String gnmksj)方法中可以实现自己的业务,DEMO中使用GnmkDAO
public class TreeServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String action = request.getParameter("action");
System.out.println("action b=>" + action);
System.out.println("action b=>" + action);
String data = request.getParameter("data");
if (action.equalsIgnoreCase("getChildren")) {
JSONTokener jsonTokener = new JSONTokener(data);
JSONObject jsonObject = (JSONObject) jsonTokener.nextValue();
JSONObject parentNodeObject = (JSONObject) jsonObject.get("node");
response.setContentType("text/json; charset=gb2312");
PrintWriter out = response.getWriter();
out.write(getChildren(parentNodeObject)); } else {}
private String getchildren (jsonObject parentnodeobject) {
String parentObjectId = parentNodeObject.getString("objectId");// id 唯一
// String parentWidgetId = parentNodeObject.getString("widgetId");//
parentObjectId = parentObjectId.equalsIgnoreCase("루트 ") ? ""
: parentObjectId;
System.out.println("parentObjectId=>" parentObjectId);
// 获取子功能模块
목록 listGnmk = this.getGnmkByParent(parentObjectId);
System.out.println("listGnmk=>" listGnmk.size());
if (listGnmk != null) {
Iterator itGnmk = listGnmk.iterator();
동안 (itGnmk.hasNext()) {
Gnmk qxgnmk = (Gnmk) itGnmk.next();
시도해 보세요 {
JSONObject jsonGnmkObject = new JSONObject();
문자열 gnmkbz = qxgnmk.getGnmkbz();
부울 isFolder = gnmkbz.equalsIgnoreCase("Y") ? 참
: false;
jsonGnmkObject.put("title", qxgnmk.getGnmkmc());
jsonGnmkObject.put("isFolder", isFolder);
jsonGnmkObject.put("widgetId", qxgnmk.getGnmkdm());
jsonGnmkObject.put("objectId", qxgnmk.getGnmkdm());
jsonGnmkObject.put("childIconSrc", "images/"
qxgnmk.getGnmktb());
jsonGnmkObject.put("url", qxgnmk.getGnmklj());
result.put(jsonGnmkObject);
}catch (JSONException e) { 🎜> return result.toString();
}
private List getGnmkByParent(String gnmksj ) {
GnmkDAO gnmkDao = new GnmkDAO()
return gnmkDao.getGnmkByParent(gnmksj );
}
} 3. DEMO에 대한 기타 구성 지침
1. javax 구현 .servlet.ServletContextListener 인터페이스의 contextInitialized 메소드는 HSQLDB 및 해당 데이터를 로드하는 데 사용됩니다. java is
public void contextInitialized(ServletContextEvent event) {
try { // 드라이버 로드
Class .forName ("org.hsqldb.jdbcDriver")
// 테이블 생성 및 샘플 추가 data
InputStreamReader in = new InputStreamReader(getClass().getClassLoader().getResourceAsStream("db.sql"))); BufferedReader reader = new BufferedReader(in)
DBUtils.setupDatabase(reader);
} catch(ClassNotFoundException e) {
e.printStackTrace(); 2. Web.xml 관련 구성
dojo.sample.ContextListener
청취자급>
>
다운로드