044 根据权限动态展示菜单 - bos

1.修改index.jsp页面中ajax请求的url为functionAction_findMenu.action,请求菜单数据

2.实现FunctionAction.findMenu方法

/**
* 根据当前登录的用户查询对应的菜单数据,返回json
* @return
*/
public String findMenu(){
List<Function> functionList = functionService.findMenu();
list2JsonAndWriteResponse(functionList, "parentFunction" , "roles", "children");
return NONE;
}

3.实现FunctionService.findMenu

@Override
public List<Function> findMenu() {
List<Function> functionList = null;
User user = BOSUtils.getLoginUser();
if(user.getUsername().equals("admin")){
//如果是内置用户,则查询所有菜单
functionList = functionDao.findAllMenu();
}else{
//其他用户,根据用户ID查询菜单
functionList = functionDao.findMenuByUserId(user.getId());
}
return functionList;
}

4.实现FunctionDao.findAllMenu();

/**
* 查询所有菜单
*/
@Override
public List<Function> findAllMenu() {
String hql = "from Function f where f.generatemenu = ‘1‘ ORDER BY f.zindex";
@SuppressWarnings("unchecked")
List<Function> list = (List<Function>) getHibernateTemplate().find(hql);
return list;
}

5.实现FunctionDao.findMenuByUserId

@Override
public List<Function> findMenuByUserId(String id) {
//涉及5张表的关联查询,使用hql由于省略的中间表,剩下3个类的关联查询
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";
@SuppressWarnings("unchecked")
List<Function> find = (List<Function>) getHibernateTemplate().find(hql, id);
return find;
}

时间: 2024-08-05 15:18:27

044 根据权限动态展示菜单 - bos的相关文章

项目一:第十四天 1.在realm中动态授权 2.Shiro整合ehcache 缓存realm中授权信息 3.动态展示菜单数据 4.Quartz定时任务调度框架—Spring整合javamail发送邮件 5.基于poi实现分区导出

1 Shiro整合ehCache缓存授权信息 当需要进行权限校验时候:四种方式url拦截.注解.页面标签.代码级别,当需要验证权限会调用realm中的授权方法   Shiro框架内部整合好缓存管理器,整合ehcache环境,只需要配置即可.     <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-core</artifactId> <version>

根据权限动态生成二级菜单

数据库models设计: from django.db import models """ 一级菜单 """ class Menu(models.Model): title = models.CharField(max_length=32, unique=True) icon = models.CharField(max_length=32, verbose_name="图标", null=True, blank=True)

jQuery打造动态下滑菜单

作者:漫凯维奇      来源:[教程]jQuery打造动态下滑菜单 Tip:这只是一个转载,源代码可以在上面的来源博文中下载 此教程将分步讲解如何使用JQuery和CSS打造一个炫酷动感菜单.效果如下: 效果实现步骤如下: 1.HTML结构的实现,跟平常的菜单代码没有什么区别: <div id="menu" class="menu"> <ul> <li><a href="javascript:;">

(转)ArcGIS时态数据应用——动态展示台风中心轨迹

时态数据的展示是一种很有“魅力”的数据展示手段,例如可以用颜色的深浅变化结合柱状图等图表动态地展示10年间人口的变化情况,或者用动态的点来展示台风中心移动的轨迹等等,这种动画的方式相比于普通制图往往能获得更好的用户体验.最近做了两个小demo试验了一下时态数据,这里和大家分享一下. 所谓的时态数据,就是属性中包含了时间信息的数据,字段的类型可以是文本型.数字型.日期型,如果是文本和数字型的字段书写规则如下: Supported string field formats YYYY YYYYMM Y

RABC权限控制(二级菜单实现)

目前大部分系统由于用户体验,基本上菜单不会做的很深,以二级菜单为例,做了一个简单的权限控制实现,可精确到按钮级别(基于django),下面具体看看实现 1.表结构的设计 无论开发什么都需要先梳理清楚需求,然后再考虑表结构,这里先来说说大致的表结构组成,注意,我的权限控制是通过url做的,所以控制的核心就在于控制url 表字段介绍设计如下: 权限表 url # 权限 title #权限的标题,左侧展示,代表的功能(因为不可能展示url吧) menu # 所属的一级菜单,外键关联一级菜单 paren

微信小程序结合后台数据管理实现商品数据的动态展示、维护

微信小程序给我们提供了一个很好的开发平台,可以用于展现各种数据和实现丰富的功能,本篇随笔介绍微信小程序结合后台数据管理实现商品数据的动态展示.维护,介绍如何实现商品数据在后台管理系统中的维护管理,并通过小程序的请求Web API 平台获取JSON数据在小程序界面上进行动态展示. 1.整体性的架构设计 我们整体性的架构设计,包含一个Web管理后台.一个Web API统一接口层.当然还有数据库什么,另外还有一个小程序客户端.整个架构体系还是以我之前随笔介绍的<整合微信小程序的Web API接口层的架

[python] 排序的动态展示

两句闲话 本文所说的排序是指基于交换的排序.因此,按理来说,本文应该叫基于交换的排序的动态展示,但是这样太拗口了. 效果展示 最终效果如下. 实现方法 需要说明的是,在这里是通过pygame来实现图形界面:程序使用python 3.5编写.使用pygame的好处在于,它非常自由(当然也非常麻烦). 我们一共需要编写四个文件:draw.py,sort_show.py,sort.py,main.py. 1.draw.py 在这里,我们先在draw.py中写一个Draw类,以实现pygame生成界面的

echarts 地图 动态 展示 结合css+js

echarts地图展示功能非常强大,官网上静态展示的样例非常多了,动态的资料少.研究了下.我眼下实现的通过ajax从server获取数据动态展示地图. 另外,我们有时候希望在地图之上做些自己定义的东西,比方:通知框.或者其它的东西.我们能够通过css图层的方式在地图之上实现.我实现的效果例如以下: 附上源码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&qu

JAVAEE——宜立方商城09:Activemq整合spring的应用场景、添加商品同步索引库、商品详情页面动态展示与使用缓存

1. 学习计划 1.Activemq整合spring的应用场景 2.添加商品同步索引库 3.商品详情页面动态展示 4.展示详情页面使用缓存 2. Activemq整合spring 2.1. 使用方法 第一步:引用相关的jar包. <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> </dependency> &l