如题,用的SSH框架开发,现在想要做一个这样的功能,现在我能想到的有两种方法
一种是将所有功能按钮编号,然后保存在数据库和权限表关联,然后根据权限读取出编号传到前端做判断是否能点击
二种是全部在前端处理,不通过数据库,直接将权限表中的值带到前端,功能按钮全部静态,根据后台传到前端的权限值来判断是否点击
这两种方法有个共同点就是前段必须要做判断,要是功能按钮少的话还好,要是多的话是不是会影响性能。求大神给我个常用的解决思路。能够有示例当然最好了 拜谢拜谢!
解决方案 »
- 在火狐下 div 设置了 onmouseout 为什么有时鼠标div上面移动时 也会触发onmouseout ie下就不会
- 求思路。
- 表单不提交,点击提交按钮没反映,请高手帮忙解决
- commons-fileupload 报错
- 高手请教!
- 问个简单问题!
- 程序已经开发好,TOMCAT也通过,请问如何设置域名指向我的程序呢?
- 当用户在网页上添加信息提交后,如何用JSP将添加的信息以邮件的方式发送啊?
- 一个读文件的妖怪文件
- jbpm4.4的工作流,怎么自行设计数据库记录
- ajax post提交到action无法获取json数据
- 要失业 了,哎 ,救助最后一个问题.谁用过xfire开发过webservice的出来帮个忙
如果你不是动态加载的话如下:比较麻烦//伪代码
var btn=['a','b','c','d'];//假设一共4个按钮,当前角色只拥有点击A,C的权限
var power=['a','c'];//从后台获取的权限数据
for(i in btn)
{
for(t in power)
{
power[t]==btn[i]&&(创建该可点击按钮,btn.splice(i,1));}}
for(x in btn )
{
//创建剩下的不可点击按钮
}这样写的话看上去比较麻烦,一般都是没有权限直接就不加载了,如果你非要显示的话,就需要比对每个按钮是否有权限,这样会显得繁琐多了几个循环,但是好处在于是先判断了权限之后再加载出来的数据。而不是通过添加disable才让他不可点击,这样造成代码还没执行到这里的时候按钮时可点击的。另外你还得注意的一个问题是,如果你全部都显示出来,比如四个按钮,实际上只有两个有权限,懂代码的人是可以更改的。这不是显示不显示的问题,所以最佳的解决方案是,从数据库动态加载按钮,其他不加载。
<c:when test="${1==vo.state}">
1
</c:when>
<c:otherwise>
2
</c:otherwise>
</c:choose>
这样的方式搞判断显示按钮就可以了
<shiro:hasPermission name="company:list">
<button type="button" id="searchBtn" class="btn btn-primary btn-sm">
<i class="fa fa-search fa-btn"></i>查询
</button>
</shiro:hasPermission>后端控制器这样配
@RequestMapping("admin/party/company_listUI")
@RequiresPermissions("company:list")
public String company_listUI(HttpServletRequest request){
XXXXXXXX
return "admin/party/company/company_listUI";
}然后为系统做一个权限管理模块,要建角色表、功能表、权限表。