liu472514788 2010-09-09 11:36
浏览 256
已采纳

jsTree 1.0rc2+struts2 页面无法显示



 1.dao层

 

package com.tree.dao;

import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.stereotype.Repository;

import com.tree.domain.Tree;

@Repository("treDao")
public class TreeDao {
    @Autowired
    HibernateTemplate hibernateTemplate;

    // 获得菜单
    @SuppressWarnings("unchecked")
    public List<Tree> findTree(String menuid) {
        String sql = "";
        if (menuid != null) {
            sql = "select id,name,pageUrl from tree where sysMenu_id ="
                    + Integer.parseInt(menuid) + "";
        } else {
            sql = "select id,name,pageUrl from tree where sysMenu_id is null";
        }
        final String sql1 = sql;
        return hibernateTemplate.execute(new HibernateCallback() {
            public Object doInHibernate(Session session)
                    throws HibernateException, SQLException {
                List<Tree> list = new ArrayList<Tree>();
                SQLQuery sql = session.createSQLQuery(sql1);
                List l = sql.list();
                for (int i = 0; i < l.size(); i++) {
                    Object[] obj = (Object[]) l.get(i);
                    Tree t = new Tree();
                    t.setId(Integer.parseInt(obj[0].toString()));
                    t.setName(obj[1].toString());
                    t.setPageUrl(obj[2].toString());
                    list.add(t);
                }
                return list;
            }
        });
    }

    // 判断是否有子菜单
    @SuppressWarnings("unchecked")
    public List<Tree> findCMenu(final int menuid) {
        List<Tree> list1 = hibernateTemplate.execute(new HibernateCallback() {
            public Object doInHibernate(Session session)
                    throws HibernateException, SQLException {
                List<Tree> list = new ArrayList<Tree>();
                SQLQuery sql = session
                        .createSQLQuery("select id,name,pageUrl from tree where sysMenu_id ="
                                + menuid + "");
                List l = sql.list();
                for (int i = 0; i < l.size(); i++) {
                    Object[] obj = (Object[]) l.get(i);
                    Tree t = new Tree();
                    t.setId(Integer.parseInt(obj[0].toString()));
                    t.setName(obj[1].toString());
                    t.setPageUrl(obj[2].toString());
                    list.add(t);
                }
                return list;
            }
        });
        return list1;
    }
}

2.service

  @SuppressWarnings("unchecked")
    public List<TreeVO> findMenu1(String menuid) {
        System.out.println("=============");
        List<TreeVO> lv=new ArrayList<TreeVO>();
        List<Tree> list = treeDao.findTree(menuid);
        for (int i = 0; i < list.size(); i++) {
            List<Children> children=new ArrayList<Children>();
            Tree t = list.get(i);
            TreeVO treeVO=new TreeVO();
            if (treeDao.findCMenu(t.getId()).size() != 0) {
                treeVO.setData(t.getName());
                List<Tree> list1 = treeDao.findTree(t.getId().toString());
                for (int k = 0; k < list1.size(); k++) {
                    Children child=new Children();
                    Tree t1 = list1.get(k);
                    if (treeDao.findCMenu(t1.getId()).size() != 0) {
                        this.findMenu(t1.getId().toString());
                    } else {
                        child.setData(t1.getName());
                        children.add(child);
                    }
                }
            }
            treeVO.setChildren(children);
            lv.add(treeVO);
        }
        return lv;
    }

3。action、

  public String findMenu() {
        //
        this.setVo(treeService.findMenu1(null));
        // this.setJsons(JSONArray.fromObject("["+treeService.findMenu(this.getMenuid())+"]").toString());
        //System.out.println(JSONArray.fromObject(this.getVo()));
        return SUCCESS;
    }

4.struts.xml

<package name="jstree" extends="json-default" namespace="/ss">
        <action name="tree" class="com.tree.action.TreeAction" method="findMenu"><!--
            <result type="json">
                <param name="includeProperties">
                    vo
                </param>
            </result>
            --><result type="json">
                <param name="excludeProperties">treeService</param>
            </result>
        </action>
    </package>

 5.页面数据

6.官方json数据

[
 { "data" : "A node", "children" : [ { "data" : "Only child", "state" : "closed" } ], "state" : "open" },
 "Ajax node"
]

7.jsp页面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
    String path = request.getContextPath();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>jsTree树形菜单</title>
<title>jsTree v.1.0 - json_data documentation</title>
    <script type="text/javascript" src="<%=path %>/js/_lib/jquery.js"></script>
    <script type="text/javascript" src="<%=path %>/js/_lib/jquery.cookie.js"></script>
    <script type="text/javascript" src="<%=path %>/js/_lib/jquery.hotkeys.js"></script>
    <script type="text/javascript" src="<%=path %>/js/jquery.jstree.js"></script>
    <link type="text/css" rel="stylesheet" href="<%=path %>/js/_docs/syntax/!style.css"/>
    <link type="text/css" rel="stylesheet" href="<%=path %>/js/_docs/!style.css"/>
    <script type="text/javascript" src="<%=path %>/js/_docs/syntax/!script.js"></script>
</head>
<body>
<div id="demo2" class="demo"></div>
<script type="text/javascript">
$(function () {
    $("#demo2").jstree({ 
        "json_data" : {
            "ajax" : {
                "url" : "./ss/tree.do",
                "data" : function (n) { 
                    return { id : n.attr ? n.attr("id") : 0 }; 
                }
            }
        },
        "plugins" : [ "themes", "json_data" ]
    });
});
</script>
</body>
</html>

     所得json数据格式与官方一样,无法显示到页面上

 

  • 写回答

2条回答 默认 最新

  • lizhiyezi 2010-09-09 14:08
    关注

    json 数据有问题


    treeService


    改成


    vo

    产生的json格式就是[{ "data" : "A"},{"data":"B"}]
    不在是{vo:[{ "data" : "A"},{"data":"B"}]}

    或者配置jsTree 映射属性

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名