ligerui中的tree的异步动态加载数据库例子(转载)

来源:互联网 发布:mac给iphone刷机 编辑:程序博客网 时间:2024/06/06 12:43

原博地址:http://blog.csdn.net/vazumi/article/details/7063770

记录一下,当时想用异步加载树的方式,结果发生了错误,无法进入到action里面。看到这篇文档之后,将内容稍加修改,完成了树的加载。

下面是调整了之后的内容:

页面内容:

    <script type="text/javascript">                var manager = null;          $(function ()          {              $("#tree1").ligerTree(              {                  checkbox:false,                    nodeWidth : 250,                  onSelect: onSelect               });              manager = $("#tree1").ligerGetTreeManager();          });                    function onSelect(note) //这里的异步加载逻辑取决于你的数据库设计,把选中节点的id传回去,传回子节点json然后加载          {                                     if (note.data.id=="0")                    {                                        if (note.data.children && note.data.children.length == 0)                          manager.loadData(note.target, "json/getDsTree?type=dessert");  //加载我的甜品信息                                }                  else                  {                     if (note.data.children==undefined)                     {                          if  (note.data.id.toString()!=""&¬e.data.type!="favor") //不要再去加载口味下面的子节点,已经没有子节点了                        {                              manager.loadData(note.target, "json/getDsTree?type=favor&dsId="+ note.data.id);  //加载甜品的口味                         }                                          }                  }                          }</script>

action:

public String getDsTree(){System.out.println("I'm in method getDsTree!!!!!!!!!!!!");WebApplicationContext webContext = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletActionContext.getServletContext());dessertDao = (DessertDao) webContext.getBean("dessertDao");if("dessert".equals(type)) {List<Dessert> dataList = dessertDao.findAll();List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();        for (Dessert dessert :dataList) {        HashMap<String, Object> hashMap = new HashMap<String, Object>();        hashMap.put("text", dessert.getDsName());        hashMap.put("id", dessert.getDsId());        hashMap.put("type", type);        list.add(hashMap);        }        // 获取array类型的json字符串        jsonArray = JSONArray.fromObject(list);        System.out.println("Dessert List:    " + jsonArray);} else if ("favor".equals(type)) {// 根据传过来的甜品ID查找其口味Dessert dessert = new Dessert();dessert = dessertDao.findById(dsId);List<DsFavor> dataList = dessertDao.findAllFavor(dessert);List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();        for (DsFavor dsFavor :dataList) {        HashMap<String, Object> hashMap = new HashMap<String, Object>();        hashMap.put("text", dsFavor.getFavor());        hashMap.put("id", dsFavor.getDsfId());        hashMap.put("type", type);        list.add(hashMap);        }        // 获取array类型的json字符串        jsonArray = JSONArray.fromObject(list);        System.out.println("Favor Json:    " + jsonArray);}return SUCCESS;}

struts.xml 配置:

<package name="json" extends="json-default" namespace="/json"><action name="getDsTree" class="action.TreeAction" method="getDsTree"><result type="json">    <param name="root">                   jsonArray                </param></result><result name="input">/ds/ds_tree.jsp</result></action></package>




0 0
原创粉丝点击