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

原博地址: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>




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值