zoukankan      html  css  js  c++  java
  • 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,
                 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)
    )
  • 相关阅读:
    Linux设备驱动之Ioctl控制
    虚拟内存与物理内存的区别
    怎么远程控制他人电脑
    二维数组和指针
    二维数组和指针(C语言)
    帧率、码流与分辨率相关知识
    深入理解FIFO
    安装lsb_release
    Linux初学之vmware Workstation 网络连接三种模式
    RTSP协议学习笔记
  • 原文地址:https://www.cnblogs.com/xue88ming/p/7183014.html
Copyright © 2011-2022 走看看