2008-02-14
Ext tree + webwork + spring + hibernate 的实现
关键字: ext tree
处理树最主要是如何获得树的子节点,我通过ajax调用action的方式获得了树的下级节点,返回json字符串.
以下是获得部门树的部分代码
ext js 创建树
ext js 重新加载树
XWork.xml
Action(Webwork)
Service(通过Spring管理)
自定义ExtTreeNode 树节点对象
以下是获得部门树的部分代码
ext js 创建树
var Tree = Ext.tree;
deptTree = new Tree.TreePanel({
el : elementId,
autoScroll:true,
animate:true,
enableDD:true,
containerScroll: true,
loader: new Tree.TreeLoader({
dataUrl: CONTEXT_PATH + "/depts/deptTree.do",
baseParams: filter
})
});
// set the root node
root = new Tree.AsyncTreeNode({
text: rootDesc,
draggable:false,
id:'-1'
});
deptTree.setRootNode(root);
// render the deptTree
deptTree.render();
root.expand();
ext js 重新加载树
/**
* 重新加载树
*
* @param {f}
* f 过滤树的条件 如:{placeid:'xxxxx'}
*/
reload : function (f){
filter = f;
var loader = deptTree.getLoader();
deptTree.on('beforeload', function(){
loader.dataUrl = loader.dataUrl ;
loader.baseParams = filter;
});
root.reload();
}
XWork.xml
<action name="deptTree" method="getSubNodes" class="cn.org.coral.biz.depts.view.deptExtAction"> </action>
Action(Webwork)
/**
* ExtTree获得下级节点数据
* @return
*/
public String getSubNodes() throws Exception {
this.getHttpServletResponse().setCharacterEncoding("UTF-8");
PrintWriter out = this.getHttpServletResponse().getWriter();
String jsonString = service.getSubNodes(getFilter());
out.print(jsonString);
return null;
}
Service(通过Spring管理)
/**
* ExtTree获得下级节点数据
* @param filter
* @return
*/
public String getSubNodes(Map filter) {
JSONArray josnArray = new JSONArray();
List<ExtTreeNode> nodes = manager.getSubNodes(filter);
if(nodes !=null && !nodes.isEmpty()){
josnArray = JSONArray.fromObject(nodes);
}
return josnArray == null ? "":josnArray.toString();
}
自定义ExtTreeNode 树节点对象
package cn.org.coral.core.ext.objects;
import java.io.Serializable;
import org.directwebremoting.annotations.DataTransferObject;
/**
* ExtTreeNode对象
* @author Lib
*
*/
@DataTransferObject
public class ExtTreeNode implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
public ExtTreeNode(String id, String text, String cls, boolean leaf) {
super();
this.id = id;
this.text = text;
this.cls = cls;
this.leaf = leaf;
}
private String id;
private String text;
private String cls;
private boolean leaf;
/**
* @return the cls
*/
public String getCls() {
return cls;
}
/**
* @param cls the cls to set
*/
public void setCls(String cls) {
this.cls = cls;
}
/**
* 节点的id
* @return the id
*/
public String getId() {
return id;
}
/**
* 节点的id
* @param id the id to set
*/
public void setId(String id) {
this.id = id;
}
/**
* 是否是叶子节点
* @return the leaf
*/
public boolean getLeaf() {
return leaf;
}
/**
* 是否是叶子节点
* @param leaf the leaf to set
*/
public void setLeaf(boolean leaf) {
this.leaf = leaf;
}
/**
* 节点显示名
* @return the text
*/
public String getText() {
return text;
}
/**
* 节点显示名
* @param text the text to set
*/
public void setText(String text) {
this.text = text;
}
}
评论
laitaogood
2008-03-14
呵呵,我正想用SSH+EXT做一个薪酬管理系统作为毕业设计呢,楼主的文章给我提供了很多灵感啊,谢谢,楼主了
jacally
2008-03-08
/**
* 设置过滤条件,得到适合的生成树的数据
* @return
*/
public Map getFilter() {
Map filter = new HashMap();
//按照上级节点的ID过滤子节点
filter.put("parentid", getNode());
//也可以加入其它需要的过滤条件
filter.put("placeid", getPlaceid());
return filter;
}
wf_7758520
2008-03-06
请问filter是什么类型是在哪设置的,还有就是
String jsonString = service.getSubNodes(getFilter()); 中getFilter()方法的实现是什么?
String jsonString = service.getSubNodes(getFilter()); 中getFilter()方法的实现是什么?
发表评论
- 浏览: 87318 次
- 性别:

- 来自: 广州

- 详细资料
搜索本博客
我的相册
flexlib6-1.jpg
共 27 张
共 27 张
最新评论
-
java实现的ftp文件上传例 ...
楼上问的好。但服务器和客户端分开的时候,上传了就出现问题了。郁闷。。
-- by kwj -
ext 与 dwr 的结合
谢谢提供资料..
-- by Wallian_hua -
(转)flex中的三个.war包 ...
blazeDS
-- by tedeyang -
Flex 开发学习笔记3 - Fl ...
谢谢-我想将你的这篇文章转载到http://yexin218.cublog.cn ...
-- by yexin218 -
Flex 开发学习笔记3 - Fl ...
哦 知道了。。。谢谢 不错
-- by yexin218






评论排行榜