刚刚使用JQUERY,很多东西不懂,这里有一个树状的展示,但是出不了结果,麻烦大家给看下,代码如下页面HTML,通过
  <script>
   showTree('id','chanpin') ;
  </script>
调用showTree方法,方法如下:function showTree(jid,method)
{
var treeData;
$.ajax({
    url: 'server.jsp?method='+method,
    type: 'GET',
    dataType: 'json',
    timeout: 1000,
    error: function(){
        alert('Error loading XML document');
    },
    success: function(xml){
       alert(xml) ;
       // treeData=xml;
    }
});
   $("input#"+jid).popup(
$("#tree").dynatree({
checkbox: true,
selectMode: 3,
children: treeData,
onSelect: function(select, dtnode) {
// Get a list of all selected nodes, and convert to a key array:
var selKeys = $.map(dtnode.tree.getSelectedNodes(), function(node){
return node.data.key;
});
//$("#qy").text(selKeys.join(", ")); // Get a list of all selected TOP nodes
var selRootNodes = dtnode.tree.getSelectedNodes(true);
// ... and convert to a key array:
var selRootKeys = $.map(selRootNodes, function(node){
return node.data.key;
});
$("#"+jid).attr("value",selKeys.join(","));
//$("#qy").attr("value",selRootNodes.join(", "));
},
onDblClick: function(dtnode, event) {
dtnode.toggleSelect();
},
onKeydown: function(dtnode, event) {
if( event.which == 32 ) {
dtnode.toggleSelect();
return false;
}
}
// The following options are only required, if we have more than one tree on one page: 
// initId: "treeData",
//cookieId: "ui-dynatree-Cb3",
//idPrefix: "ui-dynatree-Cb3-"
}));}以下是server.jsp的写法,<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ page import="com.wave6.*"%>  
<%@ page import="com.util.*"%>
<%
String paraString = Format.URLdecode(request.getParameter("method")) ;
if (paraString.equals("chanpin"))
{
out.println(TreeSelectUtil.getProductTree());
}
%>然后getProductTree方法为:package com.util;import java.util.Iterator;
import java.util.List;
import java.util.Map;import org.springframework.jdbc.core.JdbcTemplate;import com.wave6.JSONObject;
import com.wave6.JSONArray;
public class TreeSelectUtil {

public static JSONArray getProductTree() throws Exception
{
String sql = "select id id ,FLOWNAME name ,'' parent_id from flow union select TACHEID id,TACHENAME name,flowid parent_id from tache " ;
JdbcTemplate jt = DbUtil.getJdbcTemplet() ;
List queryResultList = jt.queryForList(sql) ;
JSONArray result = JSONUtil.getJSAByList(queryResultList);
return result ;
}
}这个方法返回的json格式我输出,给大家看下,
[
{"cell":{"ID":"1","NAME":"q","PARENT_ID":null},"ID":"1"},
{"cell":{"ID":"11","NAME":"ee","PARENT_ID":"1"},"ID":"11"},
{"cell":{"ID":"2","NAME":"w","PARENT_ID":null},"ID":"2"},
{"cell":{"ID":"22","NAME":"er","PARENT_ID":"2"},"ID":"22"},
{"cell":{"ID":"3","NAME":"e","PARENT_ID":null},"ID":"3"},
{"cell":{"ID":"33","NAME":"wqe","PARENT_ID":"3"},"ID":"33"},
{"cell":{"ID":"4","NAME":"qwe","PARENT_ID":null},"ID":"4"},
{"cell":{"ID":"44","NAME":"23","PARENT_ID":"1"},"ID":"44"},
{"cell":{"ID":"55","NAME":"wre","PARENT_ID":"1"},"ID":"55"}
]目的是想得到一个树状结构,PARENT_ID为空,则表示该ID没有子目录,麻烦大家帮忙看下,这么写的目的是以后方便复用,以后代入参数就可以自己调用什么方法,不需要写很多这个啦。

解决方案 »

  1.   

    拿Json用$.Json发ajax请求,, $.ajax搞不定
      

  2.   

    你的返回值呢?没有返回json到js吧
      

  3.   

    有的啊以下是server.jsp的写法,<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
    <%@ page import="com.wave6.*"%>   
    <%@ page import="com.util.*"%>
    <%
    String paraString = Format.URLdecode(request.getParameter("method")) ;
    if (paraString.equals("chanpin"))
    {
    out.println(TreeSelectUtil.getProductTree());
    }
    %>是在这个JSP里返回的,out.println啊
      

  4.   

    想得到树状结构就得返回树状结构,你返回的是JSONARRAY