`

ExtJS3 简单主页面 构

阅读更多

一. 页面JSP代码如下

 

<%
 String userName =  (String)request.getAttribute("username");
 %>
<html>
<head>
<title></title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript">
  	//{1} 定义主框架头panel
	var headPanel = new Ext.Panel({
		border: false,
		layout:'anchor',
		region:'north',		
		height:36,
		items: [{
			xtype:'box',
			el:'headPanel',
			border:false,
			anchor: 'none -25'
		}
		]
	});
	
	//退出系统
	function logoutclick(){
		Ext.Msg.confirm("警告","是否退出系统?",function re(o){
			if('yes'==o){
					window.close();
			}
		}
		);
	}
	
  	//{2} 定义主框架功能菜单panel
	var menuPanel = new Ext.Panel({
            region: 'west',
            id: 'west-panel', 
            title: '功能菜单',
            split: true,
            width: 200,
            minSize: 175,
            maxSize: 400,
            collapsible: true,
            autoScroll:false,            
            margins: '0 0 0 2',            
            layout:'accordion',
            layoutConfig:{
            animate: true,
            activeItem :0         
            },
            addmenu:function(list){
	                var menulist=list;
	                if(list!=null&&list!='undefind')
					for(var i=0;i<menulist.length;i++){
							var obj=menulist[i];
							//建立菜单树							
							var tree=new Ext.tree.TreePanel({
									id:'__menupanel__'+obj.id,
									title:obj.text,
				                    border: false,
				                    iconCls: 'icon-password',
									xtype:'treepanel',
									rootVisible: false,	
									autoScroll:true,
									tools:[{
									    id:'refresh',
									    qtip: '刷新',									    
									    handler: function(event, toolEl, panel){	
									    	      
									        panel.getRootNode().reload();
									       
									    }
									}],
									root: new Ext.tree.AsyncTreeNode({id:obj.id,text:obj.text}),
									listeners: {
								            click: function(node,event) {
								            		if(node.leaf){
								            			//后台传递过来的属性值都通过node.attributes进行获取
								            			addTab(node.id,node.text,node.attributes.handle_represent)
								            		}			            
									        }
									        //加载节点
									        ,beforeload:function(node){										        
										           node.loader= new Ext.tree.TreeLoader(
										          		{dataUrl:'<%=basepath%>/menumanage/querymenu_list.action?p_menu_code='+node.id+'&username='+'<%=userName%>'}
										            );
									        }
									}
				                });
				                
				        	menuPanel.add(tree);			      
					}// end of for      
            }// end of addmenu 
	});// end of menuPanel 
     
    //{3} 定义主框架操作区域panel
  	var optRegionPanle = new Ext.TabPanel({
                region: 'center', 
                deferredRender: false,
                activeTab: 0,
                margins: '0 2 0 0',
                enableTabScroll:true,     
	            items: [{
	                title: '我的工作台',
	                //autoLoad:{url:'userFastMenu.action',scripts:true},
	                autoLoad:'body.jsp',
	                closable: false,
	                autoScroll: false
	            }]                  
    });
    
var fs;
Ext.onReady(function(){   	
   	Ext.QuickTips.init();
   	//加载菜单   		 		  		
   	menuPanel.addmenu(${menulist});
    var viewport = new Ext.Viewport({
          layout: 'border',
          frame:true,
          items: [headPanel,menuPanel,optRegionPanle]
    }); 
}); 

//增加一个TAB,存在则直接显示
function addTab(id,title,url){
	//存在该节点就转向,没有则新增   
	var tab = optRegionPanle.getComponent("_tab_" + id);
	//判断不存在tab且树的节点为叶子	
	if (!tab){
		tab = optRegionPanle.add({
				id:"_tab_"+id,
				title:title,           
			    iconCls: 'tabs',          
			    closable:true,
			    html:'<iframe scrolling="auto" frameborder="0" width="100%" height="100%" src=<%=basepath%>'+url+' id=_tabcontent_'+id+'></iframe>'
		}); 	
	}
	optRegionPanle.setActiveTab(tab);
}

</script>
</head>
<body scroll="no">
<div id="headPanel">
     <table width="100%" height="36" border="0" cellpadding="0" cellspacing="0" background="images/top-bg2.gif">
	<tr>
		<td width="800" background="image/control.jpg" align="right">
		</td>
	</tr>
</table>
</div> 
<div id="menuPanel" class="x-hide-display">
</div>
<div id="pwd-win">
</body>
</html>  
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%String basepath=request.getContextPath();%>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>1</title>
	<link rel="stylesheet" type="text/css" href="<%=basepath %>/resources/css/ext-all.css" />
	<link rel="stylesheet" href="<%=basepath %>/resources/css/common.css" type="text/css"></link>  
	<link rel="stylesheet" href="<%=basepath %>/resources/css/Ext.ux.UploadDialog.css" type="text/css"></link>  
	<script type="text/javascript" src="<%=basepath %>/resources/js/ext-base.js"></script>
	<script type="text/javascript" src="<%=basepath %>/resources/js/ext-all-debug.js"></script>
	<script type="text/javascript" src="<%=basepath %>/resources/js/ext-lang-zh_CN.js"></script>
	<script type="text/javascript" src="<%=basepath %>/resources/js/windowposition.js"></script>  		
	<script type="text/javascript" src="<%=basepath %>/resources/js/IFrameComponent.js"></script>
	<script type="text/javascript" src="<%=basepath %>/resources/js/common.js"></script>
	<script type="text/javascript" src="<%=basepath %>/resources/js/gridToExcel.js"></script>
	<script type="text/javascript" src="<%=basepath %>/resources/js/myvtype.js"></script>
	<script type="text/javascript" src="<%=basepath %>/resources/js/myextplus.js"></script>
	<script type="text/javascript" src="<%=basepath %>/resources/js/Ext.ux.UploadDialog.js"></script>
	<script type="text/javascript" src="<%=basepath %>/resources/js/Ext.ux.UploadDialog.packed.js"></script>
	<script type="text/javascript" src="<%=basepath %>/resources/js/common_client.js"></script>
	<script type="text/javascript" src="<%=basepath %>/charts/FusionCharts.js"></script>  	
<script type="text/javascript">
	Ext.BLANK_IMAGE_URL = '<%=basepath%>/resources/images/default/s.gif';
	Ext.QuickTips.init();
	Ext.form.Field.prototype.msgTarget = "side";
</script>
</head>
</html>




 

2.menu 数据加载

 

struts 配置如下:

 
<struts>
<package name="menumanage" namespace="/menumanage" extends="sys-default">
  <action name="querymenu_list" class="MenuManageAction" method="queryMenuList">
  </action>
</package>
</struts>

 

 

java代码如下:

1.action

    public String queryMenuList() throws Exception
    {
        Map params_new = exchangeParams();
        String str = menuManageService.queryMenuList(params_new);
      
<pre name="code" class="html">             String encding = "UTF-8";
		response.setContentType(CONTENT_TYPE);
		OutputStream out = response.getOutputStream();
		out.write(str.getBytes(encding));
		out.flush();
		out.close()

return NONE; }


 

 

2.service

public String queryMenuList(Map params) throws Exception
    {
        String menuStr = "";
        List list = null;
        if (null != params && !params.isEmpty())
        {
            list = menuManageDAO.queryMenuList(params);
        }
         return JSONArray.fromObject(list).toString();;
    }

 

3.dao

  public List queryMenuList(Map params)
    {
        List argsList = new ArrayList();
        StringBuffer sql = new StringBuffer();
        Object args[] = null;
        int argTypes[] = null;
       
        sql.append("SELECT DISTINCT M.MENU_ID ID,NAME TEXT,(CASE M.MENU_FOLDER_FLAG  WHEN '2' THEN 'TRUE' ELSE 'FALSE' END  ) LEAFTEMP,SORT_NO,HANDLE_REPRESENT ");
        sql.append(" FROM " + this.tableSchema).append(".F_CONFIG_MENU M  WHERE 1=1 ");
        
        String userName = String.valueOf(params.get("username"));
        List menuList = null;
        if (!StringUtil.isEmpty(userName))
        {
            menuList = userDao.queryMenuListByUserName(userName);
        }
        
        String ss = "'";
        for (int i = 0; i < menuList.size(); i++)
        {
            Map m = (Map)menuList.get(i);
            String str = String.valueOf(m.get("MENUID"));
            if (!StringUtil.isEmpty(str))
                ss += str + "','";
        }
        ss = ss.substring(0, ss.length() - 2);
        if (ss != "")
        {
            sql.append(" and M.MENU_ID in (").append(ss).append(") ");
        }
        
        if (StringUtil.isNullOrEmpty(params.get("p_menu_code")))
        {
            sql.append("AND (P_MENU_CODE=(SELECT MENU_ID FROM " + this.tableSchema);
            sql.append(".F_CONFIG_MENU WHERE P_MENU_CODE IS NULL)) ");
        }
        else
        {
            sql.append("AND P_MENU_CODE=? ");
            argsList.add(params.get("p_menu_code"));
        }
     
        sql.append("order by sort_no ");
      
        if (argsList.size() > 0)
        {
            args = new Object[argsList.size()];
            argTypes = new int[argsList.size()];
            for (int i = 0; i < argsList.size(); i++)
            {
                args[i] = (Object)argsList.get(i);
                argTypes[i] = Types.BIGINT;
            }
        }
       
        return jdbcTemplateEx.query(sql.toString(), args, argTypes, new SuyRowMapper(MenuBean.class));
    }
 public List queryMenuListByUserName(String userName)
    {
        StringBuffer sb = new StringBuffer();
        sb.append(" select m.menu_id menuid,U.* from ")
            .append(this.tableSchema)
            .append(".")
            .append("sys_role_menu_ref m, ")
            .append(this.tableSchema)
            .append(".")
            .append("F_config_user u where m.role_id = u.roleid ")
            .append(" and u.name= ?");
       
        return this.jdbcTemplateEx.queryForList(sb.toString(), new Object[] {userName}, new int[] {Types.VARCHAR});
    }

 

	   



 

简单表结构如下:

 

create table SYS_MENU  (
   MENU_ID              NUMBER(16)                      not null,
   NAME                 VARCHAR2(256),
   TITLE                VARCHAR2(256),
   P_MENU_CODE          VARCHAR2(16),
   MENU_FOLDER_FLAG     VARCHAR2(8),
   HANDLE_REPRESENT     VARCHAR2(256),
  
   --PK_SYS_MENU_ID primary key (MENU_ID)
)
create table SYS_ROLE_Menu_REF  (
  ROLE_Menu_REF_ID  NUMBER(16)                      not null,
  Menu_ID           NUMBER(16)                      not null,
   ROLE_ID              NUMBER(16)                      not null,
   ---SYS_ACCOUNT_ROLE_REF_PK primary key (ACCOUNT_ROLE_REF_ID)
)

 

 

分享到:
评论

相关推荐

    extJs3升级extjs4方案

    ExtJS3 升级到 ExtJS4 方案 ExtJS3 升级到 ExtJS4 需要修改大量代码,主要是因为 ExtJS4 配备了一类新的系统,不向后兼容。在 ExtJS 3 里生成表的几个框架组件,ExtJS4 大多生成 div,这使得 CSS classes 将会失败...

    ExtJs3 演示系统

    ExtJs3是一个强大的JavaScript框架,主要用于构建富客户端的Web应用程序。这个"ExtJs3演示系统"是一个基于ExtJs3版本的员工管理系统,它展示了如何利用该框架创建一个功能齐全、界面友好的应用。在这个系统中,你...

    extjs界面生成,页面设计

    extjs界面生成,页面设计,可以用可视化的方式,生成一套extjs系统界面

    extjs3中文手册

    extjs3中文手册 最新的extjs3版本的中文手册

    EXTJS图书管理系统页面(JAVA)

    EXTJS的事件驱动模型使得页面各组件间的交互变得简单。当用户进行操作,如点击按钮、选择列表项时,会触发相应的事件,EXTJS通过事件监听器处理这些事件,更新UI或调用后端服务。 此外,EXTJS的布局管理机制也是其...

    extjs4.0 实现了主页面框架 动态菜单 例子 表单 ajax

    extjs4.0 实现了主页面框架(主框架使用Ext.Viewport,banner使用Ext.panel.Panel,通过toolbar来放置按钮),包括左侧动态菜单实现(采用Ext.tree.Panel)动态从数据库加载数据来显示菜单(后台代码也在了通过json...

    Extjs3.x入门学习

    本篇将基于"Extjs3.x入门学习"这一主题,深入探讨相关知识点。 1. **EXT_JS实用开发指南**: 这份文档可能包含了关于ExtJS的基本概念、架构以及开发流程的介绍,帮助初学者快速上手。可能包括如何创建基本的页面...

    extjs 写的系统页面实例源码

    用extjs写的页面例子,是一个系统,很合适初学者学习

    Extjs3 多选下拉框LovCombo

    ExtJS 3是一款基于JavaScript的富客户端框架,用于构建功能丰富的、交互式的Web应用程序。在ExtJS 3中,多选下拉框(LovCombo)是一种复合组件,它结合了下拉列表和“爱好者选择”(LOV,Lookup Value)的功能,允许...

    ExtJS3X最新中文书籍.rar

    3. **布局管理**:ExtJS拥有多种布局方式,如Fit布局、Border布局、Table布局等,适应各种复杂的页面布局需求。 4. **Ajax支持**:通过AJAX,ExtJS可以实现异步数据交换,提供无缝的用户体验,无需刷新整个页面即可...

    extjs3源文件下载

    标题“extjs3源文件下载”指的是获取ExtJS 3版本的源代码,这通常是开发者为了深入理解框架的工作原理、进行二次开发或者寻找特定功能的实现方式时会做的事情。 在描述中提到了ExtJS的两个关键特点:一是它能够创建...

    EXTJS简单MVC实例

    只要将解压的文件直接放置到myeclipse的webroot下面,启动tomcat访问。简单的EXTJS mvc框架,设计 store,model,controller,view,window等等,同时展示了一些基本的点击显示、修改等等操作,需要的同学自行下载

    EXTJS3.1的一个页面

    随便玩玩的EXTJS3.1的一个页面初学者可以看看, 可以用来学习学习。内容还是很丰富的。随便玩玩的EXTJS3.1的一个页面初学者可以看看, 可以用来学习学习。内容还是很丰富的。

    EXTJS页面编辑器

    EXTJS页面编辑器是一款专为EXTJS开发人员设计的强大工具,它极大地简化了EXTJS界面的构建过程,使得开发者能够快速、高效地创建出复杂的Web应用程序界面。EXTJS是一种流行的JavaScript框架,以其丰富的组件库、可...

    ExtJs3.3中文API.CHM_extjs3.3中文文档_

    2. **数据绑定**:ExtJS支持双向数据绑定,使得视图和模型之间的数据同步变得简单。数据源可以是JSON、XML或其他数据格式,与服务器端的数据交互也十分便捷。 3. **布局管理**:框架内置了多种布局方式,如Fit布局...

    Extjs 之主界面布局

    Extjs 之主界面简单布局,适合刚刚接触ext的新手学习,就一个html页面。 现在拿来分享。

    spket插件extjs3包

    你需要从EXTJS官网或其他来源下载EXTJS3的压缩包,并将其中的文件解压到Eclipse的工作空间或指定位置,以便SPket能够找到并识别EXTJS3的API。 6. **配置SPket**:在安装完成后,需要在Eclipse的偏好设置...

    Extjs生成主界面

    ### Extjs生成主界面 #### 一、简介 在现代Web开发中,用户界面的设计与实现至关重要。Extjs是一款强大的JavaScript框架,它提供了丰富的UI组件和工具,可以帮助开发者快速构建高性能的企业级Web应用。本文将详细...

    extjs的登录页面

    用extjs4写的登录页面,希望对你有用,适合初学者

    extjs3.x 官方示例以及chm版api

    4. **Ajax交互**:ExtJS 3.x 提供了强大的Ajax功能,如AJAX请求对象、数据Proxy,使得与服务器端数据交换变得更加简单。 5. **Store和Model**:数据存储机制,Store负责管理数据集,Model定义了数据结构和验证规则...

Global site tag (gtag.js) - Google Analytics