FunctionAction(新增方法):
/** * 加载当前用户显示的菜单 * @return */ public String loadMenu(){ List<Function> list = functionService.loadMenu(); BOSUtils.writerJson(list, new String[]{"parentFunction","roles","children"}); return NONE; }
FunctionService、FunctionServiceImpl(新增方法及其实现):
/** * 加载当前用户的菜单 * @return */ List<Function> loadMenu();
@Override public List<Function> loadMenu() { User user = BOSUtils.getLoginUser(); List<Function> list = null; //如果当前用户为系统管理员账号 if(user.getUsername().equals("admin")){ //为系统管理员加载所有菜单 list = functionDao.findByAdminMenu(); }else{ //为普通用户加载其对应菜单 list = functionDao.findByUserMenu(user.getId()); } return list; }
FunctionDao、FunctionDaoImpl(新增方法及其实现):
/** * 查询超级管理员的菜单信息 * @return */ List<Function> findByAdminMenu(); /** * 查询指定用户菜单的信息 * @return */ List<Function> findByUserMenu(String userId);
@Override public List<Function> findByAdminMenu() { String hql = "FROM Function f WHERE f.generatemenu = '1' ORDER BY f.zindex DESC"; return (List<Function>) this.getHibernateTemplate().find(hql); } @Override public List<Function> findByUserMenu(String userId) { String hql = "SELECT DISTINCT f FROM Function f LEFT OUTER JOIN f.roles" + " r LEFT OUTER JOIN r.users u WHERE u.id = ? AND f.generatemenu = '1' " + "ORDER BY f.zindex DESC"; return (List<Function>) this.getHibernateTemplate().find(hql, userId); }
页面:
修改基本功能菜单加载的URL即可。如下:
// 基本功能菜单加载 $.ajax({ url : '${pageContext.request.contextPath}/FunctionAction_loadMenu.action', type : 'POST', dataType : 'text', success : function(data) { var zNodes = eval("(" + data + ")"); $.fn.zTree.init($("#treeMenu"), setting, zNodes); }, error : function(msg) { alert('菜单加载异常!'); } });