`
jacally
  • 浏览: 767401 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Ext tree + webwork + spring + hibernate 的实现

    博客分类:
  • Ajax
阅读更多
处理树最主要是如何获得树的子节点,我通过ajax调用action的方式获得了树的下级节点,返回json字符串.

以下是获得部门树的部分代码

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;
	}

}

3
0
分享到:
评论
5 楼 dingchao.lonton 2011-03-08  
确实要用递归来获得一颗树,这是最重要的部分
4 楼 我奋斗 2008-12-03  
最关键的东西没写出来,比如你如何得到树的结构,是采用递归算法呢,还是用其他的办法。总之,参考价值太小。
3 楼 laitaogood 2008-03-14  
呵呵,我正想用SSH+EXT做一个薪酬管理系统作为毕业设计呢,楼主的文章给我提供了很多灵感啊,谢谢,楼主了
2 楼 jacally 2008-03-08  
/** 
* 设置过滤条件,得到适合的生成树的数据 
* @return 
*/ 
public Map getFilter() { 
  Map filter = new HashMap(); 
  //按照上级节点的ID过滤子节点 
  filter.put("parentid", getNode()); 
  //也可以加入其它需要的过滤条件 
  filter.put("placeid", getPlaceid()); 
  return filter; 
}
1 楼 wf_7758520 2008-03-06  
请问filter是什么类型是在哪设置的,还有就是
String jsonString = service.getSubNodes(getFilter());      中getFilter()方法的实现是什么?

相关推荐

    EXT+Spring+Hibernate+WebWork项目

    【EXT+Spring+Hibernate+WebWork项目】是一个综合性的企业级应用开发实例,它整合了四个关键的技术框架:EXT、Spring、Hibernate和WebWork。这些技术的组合为构建高效、可扩展且用户友好的Web应用程序提供了强大的...

    spring+hibernate+webwork相关配置

    标题 "spring+hibernate+webwork相关配置" 指的是一个集成开发环境的配置,其中涵盖了三个关键的技术框架:Spring、Hibernate和WebWork。这些框架在Java Web开发中非常常见,主要用于实现依赖注入、持久化管理和MVC...

    webwork+spring+hibernate 开发资料

    在提供的文档“webwork+spring+hibernate架构.doc”中,可能详细阐述了这三者如何协同工作,包括配置文件设置、依赖注入的使用、事务管理策略以及具体实例的开发步骤。而“webwork.doc”则可能专门介绍了WebWork框架...

    veloctiy+webwork+ibatis+spring资料

    【veloctiy+webwork+ibatis+spring资料】这套学习资源主要涵盖了四个在Java Web开发领域中常用的技术框架:Velocity、WebWork、iBATIS和Spring。这四大框架各有其独特功能,组合使用可以构建出高效、灵活的业务应用...

    Spring + hibernate + webwork + freemarker 整合配置

    本示例中,我们探讨的是如何将Spring、Hibernate、WebWork和FreeMarker这四个组件整合到一起,实现一个强大的后端服务架构。 首先,`web.xml`是部署描述符文件,它是Java EE Web应用程序的核心配置文件。在这里,...

    Webwork+spring+hibernate集成实例

    在Webwork+Spring+Hibernate集成中,Spring通常作为整体架构的胶水,负责各组件的连接和协调。它可以管理Webwork的Action,通过依赖注入提供所需的Service和DAO。同时,Spring可以配置Hibernate SessionFactory,...

    hibernate+webwork+spring的学习资料

    【hibernate+webwork+spring的学习资料】是一份针对J2EE开发的综合学习资源,涵盖了三个核心的Java企业级框架:Hibernate、Spring和WebWork。这些框架在现代Java应用开发中扮演着至关重要的角色。 **Hibernate**是...

    webwork+hibernate+spring

    在IT行业中,Web开发是一个非常重要的领域,而`webwork+hibernate+spring`的组合是其中一种经典的架构模式,常用于构建高效、可维护的企业级应用。这个小例子展示了如何将这三大框架整合起来,配合MySQL数据库进行...

    HIBERNATE+WEBWORK+SPRING整合 可运行

    本项目整合了三个重要的开源框架:Hibernate、WebWork和Spring,它们分别在数据持久化、MVC(Model-View-Controller)架构以及依赖注入方面扮演着关键角色。下面将详细解释这三个框架以及它们如何协同工作。 1. ...

    Hibernate+webwork+spring+oracle框架(2)

    本项目“Hibernate+Webwork+Spring+Oracle框架”是这样一种集成方案,它结合了四个强大的技术,旨在提供一个稳定且功能丰富的后端系统。下面将详细解释这四个关键技术及其相互间的协同工作。 **Hibernate** 是一个...

    webwork+spring+hibernate+freemarker (A)demo_lib

    综上所述,"webwork+spring+hibernate+freemarker"的组合提供了一个强大的Java Web开发环境,能够方便地处理业务逻辑、数据库交互和视图展示。对于学习或实践Java Web开发的人员来说,理解和掌握这四个框架的协同...

    Hibernate+webwork+spring+oracle框架(1)

    【标题】"Hibernate+WebWork+Spring+Oracle框架(1)"揭示了这是一个关于整合四大技术的教程或项目实例,主要关注如何在Java Web开发环境中集成这些组件。这个框架组合通常用于构建企业级应用,提供数据持久化、业务...

    webwork2.2.4+spring+hibernate做的一个登入程序

    最近在做个项目,用的是webwork+spring+hibernate,在网上看了不少webwork+spring的配制方式,大多都是老的配制方式,比如2.1.7的,webwork2.2.4新加了很多功能,和spring的配制也简单了很多,我做了一个简单的登录...

    webwork+hibernate+spring配置包

    【标题】"webwork+hibernate+spring配置包"是一个集合了三个知名Java框架的配置文件,旨在帮助开发者快速搭建基于Web的应用程序。WebWork是用于构建动态Web应用程序的一个MVC框架,Hibernate是一个强大的对象关系...

    webwork+hibernate+spring的例子

    【标题】"webwork+hibernate+spring的例子"展示了如何在实际项目中整合这三大框架,即WebWork、Hibernate和Spring。这三个框架是Java Web开发中的重要组件,它们各自承担着不同的职责,共同构建了一个功能强大的应用...

Global site tag (gtag.js) - Google Analytics