⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loadmenu.java

📁 这是一个轻便的j2ee的web应用框架,是一个在多个项目中运用的实际框架,采用struts,hebinate,xml等技术,有丰富的tag,role,navigation,session,dictio
💻 JAVA
字号:
/*
 * Created on 2004-8-24
 *
 */
package com.esimple.service.rbac.login.support;

import java.util.*;

import javax.servlet.http.HttpServletRequest;

import com.esimple.framework.dao.ibatis.ISqlMapClientDao;
import com.esimple.framework.web.action.BaseForm;
import com.esimple.framework.web.taglib.menu.MenuModel;
import com.esimple.service.rbac.User;
import com.esimple.service.rbac.login.LoginInterceptor;
import com.esimple.service.rbac.po.*;
/**
 * @author steven
 *
 */
public class LoadMenu  implements LoginInterceptor {
	private ISqlMapClientDao sqlMapDao;
	
	public void setSqlMapDao(ISqlMapClientDao sqlMapDao){
		this.sqlMapDao = sqlMapDao;
	}
	
	public void onLogin(BaseForm form, HttpServletRequest request)
		throws Exception {
		User user = (User)request.getSession().getAttribute(User.SESSION_KEY);
		String role = user.getActiveRole();
		if(role==null) return;
		
		List list = sqlMapDao.query("rbac.user.getMenu",role);
		
		if( list == null || list.size() == 0 ) return;
		
		MenuModel root = new MenuModel();
		root.setRoot( true );
		HashMap models = new HashMap();
		HashMap order = new HashMap();
		ArrayList list1 = new ArrayList();
		ArrayList list2 = new ArrayList();
		ArrayList list3 = new ArrayList();
		
		for(int i=0;i<list.size();i++){
			Menu menu = (Menu) list.get(i);
			models.put(menu.getMenuid(), makeModel(menu) );
			switch(menu.getMenulevel() ) {
				case 1:
					list1.add( menu );
					break;
				case 2:
					list2.add(menu);
					break;
				case 3:
					list3.add(menu);
					break;
			}//switch end
		}

		for(int j=0;j<list3.size();j++){
			Menu menu = (Menu) list3.get(j);
			String menuid = menu.getMenuid();
			String parentid = menu.getParentsid();
			MenuModel parent = (MenuModel)models.get(parentid);
			parent.addChild( (MenuModel)models.get(menuid) );
		}

		for(int k=0;k<list2.size();k++){
			Menu menu = (Menu) list2.get(k);
			String menuid = menu.getMenuid();
			String parentid = menu.getParentsid();
			MenuModel parent = (MenuModel)models.get(parentid);
			parent.addChild( (MenuModel)models.get(menuid) );
		}
		
		for(int l=0;l<list1.size();l++){
			Menu menu = (Menu) list1.get(l);
			String menuid = menu.getMenuid();
			root.addChild( (MenuModel)models.get(menuid) );
		}
		
		request.getSession().setAttribute("mainMenu" , root);		
	}
	
	private MenuModel makeModel(Menu menu){
		MenuModel model = new MenuModel();
		model.setRoot(false);
		model.setId(menu.getMenuid());
		model.setAction(menu.getMenuaction());
		model.setLabel(menu.getMenulabel());
		model.setTarget(menu.getActiontarget());
		if(menu.getIsleaf().equals("Y")){
			model.setLeaf(true);
		}else{
			model.setLeaf(false);
		}
		return model;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -