`
反求诸己
  • 浏览: 540842 次
  • 性别: Icon_minigender_1
  • 来自: 湖南娄底
社区版块
存档分类
最新评论

spring+dwr+EXT 树菜单(转载)

    博客分类:
  • Ext
阅读更多

spring+dwr+EXT 树菜单(转)

Java代码
  1. /** 
  2.  * <description> 菜单实体 
  3.  */  
  4. public class Menu {  
  5.     private int menuId; //自己ID  
  6.     private int menuPid; //父ID  
  7.     private String menuName; //菜单名  
  8.     private String menuUrl; //地址  
  9.     //get set方法  
  10. }  
  11.   
  12. /** 
  13.  * <description> 菜单列表处理接口 
  14.  */  
  15. public interface IMenuService {  
  16.   
  17.     /** 
  18.      * <description> 根据结点ID查找其第一级子结点 
  19.      * @param menuId 
  20.      */  
  21.     public List<Menu> queryFirstMenu(int menuId);  
  22.       
  23.     /** 
  24.      * <description> 获得所有菜单 
  25.      */  
  26.     public List<Menu> queryMenu();  
  27. }  
  28.   
  29. /** 
  30.  * <description> 菜单列表处理 
  31.  */  
  32. public class MenuServiceImpl implements IMenuService {  
  33.   
  34.     public List<Menu> queryFirstMenu(int menuId)  
  35.     {  
  36.         List<Menu> firstMenu = new ArrayList<Menu>();  
  37.         List<Menu> list = this.queryMenu();  
  38.         for(Menu m : list)  
  39.         {  
  40.             if(menuId == m.getMenuPid())  
  41.                 firstMenu.add(m);  
  42.         }  
  43.         return firstMenu;  
  44.     }  
  45.       
  46.     public List<Menu> queryMenu()  
  47.     {  
  48.         List<Menu> list = new ArrayList<Menu>();  
  49.         //菜单ID按1,2,3..., menuPid是父ID,这里只是为了举例  
  50.         int[] menuPid = new int[]{0,0,1,2,2,3,3,4,5,5,6,7,7,8};  
  51.         int length = menuPid.length;  
  52.         for(int i = 1; i <= length; i++)  
  53.         {  
  54.             Menu menu = new Menu();  
  55.             menu.setMenuId(i);  
  56.             menu.setMenuPid(menuPid[i - 1]);  
  57.             menu.setMenuName("menu" + i);  
  58.             menu.setMenuUrl("menuUrl" + i);  
  59.             list.add(menu);  
  60.         }  
  61.         return list;  
  62.     }  
  63. }  
/**
 * <description> 菜单实体
 */
public class Menu {
	private int menuId; //自己ID
	private int menuPid; //父ID
	private String menuName; //菜单名
	private String menuUrl; //地址
	//get set方法
}

/**
 * <description> 菜单列表处理接口
 */
public interface IMenuService {

	/**
	 * <description> 根据结点ID查找其第一级子结点
	 * @param menuId
	 */
	public List<Menu> queryFirstMenu(int menuId);
	
	/**
	 * <description> 获得所有菜单
	 */
	public List<Menu> queryMenu();
}

/**
 * <description> 菜单列表处理
 */
public class MenuServiceImpl implements IMenuService {

	public List<Menu> queryFirstMenu(int menuId)
	{
		List<Menu> firstMenu = new ArrayList<Menu>();
		List<Menu> list = this.queryMenu();
		for(Menu m : list)
		{
			if(menuId == m.getMenuPid())
				firstMenu.add(m);
		}
		return firstMenu;
	}
	
	public List<Menu> queryMenu()
	{
		List<Menu> list = new ArrayList<Menu>();
		//菜单ID按1,2,3..., menuPid是父ID,这里只是为了举例
		int[] menuPid = new int[]{0,0,1,2,2,3,3,4,5,5,6,7,7,8};
		int length = menuPid.length;
		for(int i = 1; i <= length; i++)
		{
			Menu menu = new Menu();
			menu.setMenuId(i);
			menu.setMenuPid(menuPid[i - 1]);
			menu.setMenuName("menu" + i);
			menu.setMenuUrl("menuUrl" + i);
			list.add(menu);
		}
		return list;
	}
}




2.dwr.xml(dwr配置)

Xml代码
  1. <allow></allow>里面添加如下,这里用spring注入,也可以不用它注入,如有不懂需要看看dwr用法  
  2.   
  3. <create creator="spring" javascript="menuService">  
  4.     <param name="beanName" value="menuService"/>  
  5. </create>  
  6.           
  7. <convert match="com.pk.entity.Menu" converter="bean"></convert>  
在<allow></allow>里面添加如下,这里用spring注入,也可以不用它注入,如有不懂需要看看dwr用法

<create creator="spring" javascript="menuService">
	<param name="beanName" value="menuService"/>
</create>
		
<convert match="com.pk.entity.Menu" converter="bean"></convert>



3.spring-menuService.xml(spring配置)

Xml代码
  1. <bean id="menuService" class="com.pk.handler.menu.service.MenuServiceImpl"></bean>  
<bean id="menuService" class="com.pk.handler.menu.service.MenuServiceImpl"></bean>



4.treeTest.js(使用队列把结点加入)

Js代码
  1. Ext.onReady(function(){  
  2.   
  3.     Ext.BLANK_IMAGE_URL = "resources/images/default/s.gif";  
  4.       
  5.     var root = new Ext.tree.TreeNode({  
  6.         text:'主菜单',  
  7.         expanded:true  
  8.     });  
  9.       
  10.     var tree = new Ext.tree.TreePanel({  
  11.         root:root,  
  12.         width:200  
  13.     });  
  14.       
  15.     function queryTree()  
  16.     {  
  17.         var menu = new Array();  
  18.           
  19.         DWREngine.setAsync(false); //同步方法  
  20.           
  21.         //取得根结点下的第一级子菜单  
  22.         menuService.queryFirstMenu(0, function(data){ //0代表根结点ID是0  
  23.             for(var i = 0; i < data.length; i++)  
  24.             {  
  25.                 var node = new Ext.tree.TreeNode({  
  26.                     text:data[i].menuName,  
  27.                     id:data[i].menuId,  
  28.                     url:data[i].menuUrl,  
  29.                     expanded:true  
  30.                 });  
  31.                   
  32.                 root.appendChild(node);  
  33.                   
  34.                 menu.push(node);  
  35.             }  
  36.         });  
  37.           
  38.         //循环队列  
  39.         for(var i = 0; i < menu.length; i++)  
  40.         {  
  41.             menuService.queryFirstMenu(menu[i].id, function(data2){  
  42.                 for(var j = 0; j < data2.length; j++)  
  43.                 {  
  44.                     var node = new Ext.tree.TreeNode({  
  45.                         text:data2[j].menuName,  
  46.                         id:data2[j].menuId,  
  47.                         url:data2[j].menuUrl,  
  48.                         expanded:true  
  49.                     });  
  50.                       
  51.                     menu[i].appendChild(node);  
  52.                       
  53.                     menu.push(node);  
  54.                 }  
  55.             });  
  56.         }  
  57.           
  58.         DWREngine.setAsync(true);  
  59.     }  
  60.       
  61.     queryTree();  
  62.       
  63.     tree.render(Ext.getBody());  
  64.       
  65. });  
Ext.onReady(function(){

	Ext.BLANK_IMAGE_URL = "resources/images/default/s.gif";
	
	var root = new Ext.tree.TreeNode({
		text:'主菜单',
		expanded:true
	});
	
	var tree = new Ext.tree.TreePanel({
		root:root,
		width:200
	});
	
	function queryTree()
	{
		var menu = new Array();
		
		DWREngine.setAsync(false); //同步方法
		
		//取得根结点下的第一级子菜单
		menuService.queryFirstMenu(0, function(data){ //0代表根结点ID是0
			for(var i = 0; i < data.length; i++)
			{
				var node = new Ext.tree.TreeNode({
					text:data[i].menuName,
					id:data[i].menuId,
					url:data[i].menuUrl,
					expanded:true
				});
				
				root.appendChild(node);
				
				menu.push(node);
			}
		});
		
		//循环队列
		for(var i = 0; i < menu.length; i++)
		{
			menuService.queryFirstMenu(menu[i].id, function(data2){
				for(var j = 0; j < data2.length; j++)
				{
					var node = new Ext.tree.TreeNode({
						text:data2[j].menuName,
						id:data2[j].menuId,
						url:data2[j].menuUrl,
						expanded:true
					});
					
					menu[i].appendChild(node);
					
					menu.push(node);
				}
			});
		}
		
		DWREngine.setAsync(true);
	}
	
	queryTree();
	
	tree.render(Ext.getBody());
	
});



5.jsp

不要忘了加上

Html代码
  1. <script type="text/javascript" src="<%=path %>/js/treeTest.js"></script>  
  2. <script src='<%=path %>/dwr/interface/menuService.js'></script>  
  3. <script src='<%=path %>/dwr/engine.js'></script>  
  4. <script src='<%=path %>/dwr/util.js'></script> 
分享到:
评论

相关推荐

    struts2+hibernate+spring+dwr整合

    Struts2、Hibernate、Spring 和 DWR 是四个在Java Web开发中非常重要的框架,它们各自在不同的领域提供了强大的功能,并且能够通过整合实现更高效、更灵活的应用开发。接下来,我们将详细探讨这些技术以及它们如何...

    Spring+Dwr整合的项目(源码)

    **Spring+DWR整合项目详解** Spring框架是Java企业级应用开发中的主流框架,它提供了依赖注入、AOP(面向切面编程)、MVC(模型-视图-控制器)等核心功能,极大地简化了开发流程。DWR(Direct Web Remoting)则是一...

    Spring+DWR+ibatis+jQuery+easyUI的框架例子

    Spring+DWR+ibatis+jQuery+easyUI的框架例子. 完全开放源代码,免费学习与使用。 可以完成基本的后台主界面,报表查询,数据查询,增加,修改等功能。 如果你要做一些报表,后台功能利用这个a框架就可以很方便实现。

    struts2+spring+hibernate+dwr

    Struts2、Spring、Hibernate和DWR是Java Web开发中常用的四大框架,它们各自负责不同的功能,协同工作能构建出高效、灵活的企业级应用。在这个小实例中,开发者结合这四个框架来展示了一个完整的后端架构。 Struts2...

    疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发(part01)

    《疯狂Ajax讲义:Prototype/jQuery+DWR+Spring+Hibernate整合开发》是《基于J2EE的Ajax宝典》的第二版。《基于J2EE的Ajax宝典》面市近2年,作为Ajax领域最全面、实用的图书,一直深受读者的好评。全书主要分为三个...

    spring+ext+dwr.rar_ext dwr_ext java_java 用户管理_spring e_spring ex

    《Spring+Ext+DWR整合应用详解:用户管理与实战》 在当今的Web开发领域,Spring、Ext和Direct Web Remoting (DWR) 是三种非常重要的技术,它们各自在不同的层面发挥着关键作用。Spring作为Java企业级应用的框架,...

    OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR)

    公文管理、申请审批、公告管理、会议管理、权限管理、个人办公、客户管理、人事等等。项目技术:Struts1.2 + Hibernate3.0 + Spring2 +DWR。java毕业设计 jsp毕业设计 ssh毕业设计

    Spring+Dwr+Hibernate整合项目

    总结,Spring+Dwr+Hibernate的整合项目提供了一种高效的方式,用于开发具备实时交互特性的Web应用。通过Spring的管理能力、Hibernate的ORM功能以及DWR的双向通信支持,开发者可以构建出高性能、易于维护的企业级应用...

    struts1+spring+hibernate+dwr 项目 满意度调查

    struts1+spring+hibernate+dwr 项目 满意度调查struts1+spring+hibernate+dwr 项目 满意度调查struts1+spring+hibernate+dwr 项目 满意度调查struts1+spring+hibernate+dwr 项目 满意度调查

    Spring+Hibernate+Ext+dwr增删改查

    Spring+Hibernate+Ext+dwr做的一个简单的grid的增删改查,面板布局, 通过autoload方式载入grid ,以及XML树的建立 ,连接MySql数据库 。JS文件代码在Demo文件夹下,JAVA代码在src下。适合新手

    struts2+hibernate+spring+dwr(用户注册)

    Struts2、Hibernate、Spring 和 DWR 是四个在 Java Web 开发中广泛应用的框架和技术,它们结合在一起可以构建高效、可维护的用户注册系统。以下是对这些技术的详细解释及其在用户注册中的应用: 1. **Struts2**:这...

    spring+hibernate+dwr+mysql实现二级联动

    ajax,spring,hibernate,dwr,实现二级联动

    Struts2 + Spring + Hibernate + DWR 项目布署笔记

    "Struts2 + Spring + Hibernate + DWR"是一个常见的Java Web开发框架组合,用于构建动态、数据驱动的Web应用程序。这个项目部署笔记将深入探讨这四个组件的核心功能以及它们如何协同工作。 首先,Struts2是一个基于...

    maven3+spring3+mybatis3+dwr3实现的的异步刷新产品信息系统

    Maven3+spring3+mybatis3+dwr3+mysql5.5,请用Chrome浏览器,兼容性还未调试。 自己写的一个小系统,包含一个模块:产品模块。 基本这个模块包括的内容就比较多了,CRUD,无刷新查询,图片上传等, 其实也是整个...

    ext2+spring+hibernate+dwr.rar_dwr MenuManage.js_ext2 ja

    "ext2.0+Hibernate+dwr+spring列子" 文件可能是项目的源代码,包含了具体实现这些技术集成的示例代码。 现在,让我们深入探讨一下这些技术: 1. **Ext JS(ext2)**:这是一个用于构建富互联网应用程序(RIA)的...

    spring mvc+dwr环境配置

    在本篇配置手册中,我们将介绍如何在Spring MVC的环境下配置DWR环境,这包括web.xml的配置、创建dwr.xml文件、添加DWR的jar包、形成推送函数类以及在前台页面引入对应的JavaScript文件。 首先,web.xml的配置是整个...

    Struts2 + spring + hibernate + dwr 完美整合代码

    Struts2、Spring、Hibernate和DWR是Java Web开发中常用的四大框架,它们各自负责不同的职责,协同工作可以构建出高效、稳定且易于维护的Web应用程序。本项目整合了这四大框架,实现了用户注册、多级下拉联动及表格...

    验证码 spring + dwr

    在这个"验证码 spring + dwr"的项目中,我们将探讨如何将这三者结合,构建一个高效且安全的验证码验证系统。 首先,Spring框架在这里的角色主要是负责服务层的构建和管理,以及与前端的交互。我们可以创建一个...

    spring+dwr.rar_dwr_dwr SPRING_spring dwr

    在IT领域,Spring框架和Direct Web Remoting (DWR)是两种重要的技术,它们在构建分布式Web应用程序中发挥着关键作用。本篇文章将详细讲解如何利用Spring与DWR结合,实现一个基本的功能:判断用户名是否已经存在于...

Global site tag (gtag.js) - Google Analytics