ajax child,ajax树及注意点

Ajax树的示例,如下所示:

在Ajax树中,JSP页上的设置没什么可讨论的,重点在配置的Action上,该Action的返回值是“freemarker”类型,指向一个ftl文件,具体配置如下所示:

/jsp/tree/ajaxDynamicTree.ftl

这个action并不需要执行体,所以上面的method="AjaxQueryNodes"并没有意义,可有可无,返回到需要的result上就行了。示例中ftl文件内容如下:

[

{

label:'${node.name}',

id:'${node.id}',

hasChildren:${(node.children.size() > 0)?string}

},

#list>

]

这一部分的映射关系需要留意了:“ajaxTreeWrapper.children”中的“ajaxTreeWrapper”是由action返回的,所以上面的action虽然不需要执行体,但必须有一个相应的getAjaxTreeWrapper()方法,返回一个对象。由“ajaxTreeWrapper.children”中的“.childre”可知,返回的对象又必须有getChildren()方法,需要返回一个List,List元素都是getAjaxTreeWrapper()方法返回对象同类的。再由label和id(同静态树相应的参数)的定义可知,getChildren()方法返回对象必须有getName()和getId()方法,用于添充结点的label和id的值。

此外,需要注意以下几点:

1.由于使用node.children.size()验证结点是否有子结点,所以getChildren()不能返回null,如果没有子结点,也只能返回空的list,如returnnewArrayList();

2.根结点是在action的getAjaxTreeWrapper()方法中指定的,但是页面上直接从它的子结点开始展示。所以如果与动态树对比,当两棵树都指定同一个数据源、指定同一个根结点,则Ajax树会从动态树的第二层开始展示。为了与动态树展示一样的结果,需要在数据源中虚拟一个根结点的根结点,让Ajax树的根指向新的虚拟根结点。

3.由于Ajax树的定义只指定了一个action,并通过该action来取得它的子结点,所以getAjaxTreeWrapper()方法的返回值需要与结点的id关联,即点击不同结点时,由action将点击的结点的id带给getAjaxTreeWrapper()方法,通过这个参数返回不同的结点,再由ftlr指定的关系,取得它们的子结点。

4.上面提到的getChildren()方法,都是指取一个结点的子结点,而不包括其子结点的子结点。子结点存放的数据结构就不在这里讨论了,只要能按节点取出其子结点就可以了。

总结

以上是编程之家为你收集整理的ajax树及注意点全部内容,希望文章能够帮你解决ajax树及注意点所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值