📄 loadmenu.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 + -