- 浏览: 112233 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
墨子宇:
so,为了使用JSLint我还得装一个aptana?
eclipse 添加 JSLint 插件 -
lvjun106:
楼主可以看下这篇文章,介绍的很详细。http://www.os ...
eclipse 添加 JSLint 插件 -
newsletterBroker:
呵呵,感觉不错!
Jquery 源码中的 正则表达式 分析 -
jayliud:
String.prototype.count = funct ...
百度web前端笔试
前些天做了一个利用Jquery做了一个系统授权的东东,个人感觉不错,主要是感觉代码很精简,留个纪念吧,公司有规定,我只截了一部分吧的图片,看图直观啊
上代码:
jsp页面代码:
<div id="listRolePermission">
<c:forEach var="item" items="${result.map.items}">
<div class="dialogPermissionContent">
<input type="checkbox" class="permission_grandpa" <c:if test="${item['selected'] eq 'selected' }">checked="checked"</c:if> />${item['key']}
<c:forEach items="${item['list']}" var="permission">
<div class="permissionFather">
<input type="checkbox" class="permission_father"<c:if test="${permission.selected eq 'selected' }">checked="checked"</c:if> />${permission.name}
<div class="permissionSon">
<c:forEach items="${permission['list']}" var="permissionItem">
<input type="checkbox" class="permission_son" value="${permissionItem.permissionId}" <c:if test="${permissionItem.selected eq 'selected' }">checked="checked"</c:if> />${permissionItem.label}
</c:forEach>
</div>
</div>
</c:forEach>
</div>
</c:forEach>
</div>
js代码://这里不难,在这里真真感觉到了jQuery的强大啊,尤其是那选择器,太NX了
$("#listRolePermission").find("input").each(function(){
if($(this).attr("checked") == true){
$(this).addClass("select");
$(this).parentsUntil("#listRolePermission").find(".permission_grandpa").attr("checked",true);
}
});
$(".permissionFather").children().find("input").each(function(){
if($(this).attr("checked") == true){
$(this).addClass("select");
$(this).parentsUntil(".permissionFather").parent().children("input").attr("checked",true);
}
});
$(".permission_grandpa").live("click",function() {
var flag = $(this).attr("checked");
$(this).parent().children().find("input").each(function() {
$(this).attr("checked", flag);
if(flag){$(this).addClass("select");}else{ $(this).removeClass("select");}
});
});
$(".permission_father").live("click",function() {
var flag = $(this).attr("checked");
var $grandpa = $(this).parent().parent();
$(this).parent().children().find("input").each(function() {
$(this).attr("checked", flag);
if(flag){$(this).addClass("select");}else{ $(this).removeClass("select");}
});
$(this).siblings().find("input").attr("checked", flag);
$grandpa.children("input").attr("checked", flag);
if(!flag){
if($grandpa.children("div").find("input").hasClass("select")){
$grandpa.children("input").attr("checked", !flag);
}else{
$grandpa.children("input").attr("checked", flag);
}
}
});
$(".permission_son").live("click",function() {
var flag = $(this).attr("checked");
var $father = $(this).parent().siblings("input");
$(this).attr("checked", flag);
$father.attr("checked", flag);
if(flag){$(this).addClass("select"); }else{ $(this).removeClass("select");}
if(!flag){
if(!$(this).siblings().hasClass("select")){
$father.attr("checked", flag);
$father.removeClass("select");
$("#listRolePermission").find("input").each(function(){
if($(this).attr("checked") == flag){
$(this).removeClass("select");
$(this).parentsUntil("#listRolePermission").find(".permission_grandpa").attr("checked",flag);
}
});
}else{
$father.attr("checked", !flag);
$father.addClass("select");
}
}else{
$father.addClass("select");
}
$("#listRolePermission").find("input").each(function(){
if($(this).attr("checked") == true){
$(this).addClass("select");
$(this).parentsUntil("#listRolePermission").find(".permission_grandpa").attr("checked",true);
}
});
});
后台处理代码:
@RequestMapping(params="action=permission")
public ModelAndView permission(HttpServletRequest request) throws Exception {
ModelAndView mav = new ModelAndView(PageView.SYSTEM_ROLE_PERMISSION);
QueryCondition conds = new QueryCondition(new Pager());
DataResult dataResult = new DataResult();
conds.getPager().setPageSize(conds.getPager().getTotalCount());
QueryCondition configConds = new QueryCondition();
DataModelList alllist = roleService.findPermission(configConds);
List<PermissionVO> allListP = alllist.getList();
List<PermissionVO> listSelected =null;
String roleIdString = request.getParameter("roleId");
if(UtilValidate.isNotEmpty(roleIdString)){
QueryCondition selectedConds=new QueryCondition();
selectedConds.put("roleId",roleIdString);
listSelected = roleService.findRolePermission(selectedConds).getList();
dataResult.addObject("roleId",roleIdString);
}
List list = new ArrayList();
//这一块处理的好啊,吴大哥就是厉害啊,就应为这个Map使jsp界面很简洁,很优雅。第一回感觉到map的强大啊
Map<String,String> mapType = new HashMap<String,String>();
mapType.put("系统", "system_");
mapType.put( "***","user_");
mapType.put("---", "club_");
//初始化时,判断是否选中
for(int k=0;k<listSelected.size();k++){
for(int i=0;i<allListP.size();i++){
if(listSelected.get(k).getPermissionId() == allListP.get(i).getPermissionId()){
allListP.get(i).setSelected("selected");
}
}
}
for(Map.Entry<String,String> m: mapType.entrySet()){
Map map = new HashMap();
List itemList = new ArrayList();
for(int i=0;i<allListP.size();i++){
PermissionVO permissionVO=allListP.get(i);
if(UtilValidate.isNotEmpty(permissionVO.getCode()) && permissionVO.getCode().indexOf(m.getValue().toString())==0){
checkPermission(itemList,permissionVO,listSelected);
}
}
map.put("key",m.getKey().toString());
map.put("list", itemList);
list.add(map);
}
dataResult.addObject("items",list);
mav.addObject("result", dataResult);
return mav;
}
//因为里面套着2个层,所以还得有两个list
private boolean checkPermission(List itemList,PermissionVO permissionVO,List<PermissionVO> listSelected){
boolean check = false;
List<PermissionVO> perList = null;
for(int i=0;i<itemList.size();i++){
Map perMap = (Map) itemList.get(i);
perList = (List) perMap.get("list");
if(UtilValidate.isNotEmpty(perList)){
if(permissionVO.getPermissionUnion().equals(((PermissionVO)perList.get(0)).getPermissionUnion())){
check = true;
if(!checkPermissionItem(perList,permissionVO)){
perList.add(permissionVO);
}
}
}
}
if(!check){
perList = new ArrayList();
perList.add(permissionVO);
Map perMap = new HashMap();
perMap.put("list", perList);
perMap.put("key", permissionVO.getPermissionUnion());
perMap.put("name", permissionVO.getPermissionUnionName());
perMap.put("id", permissionVO.getPermissionId());
itemList.add(perMap);
}
return check;
}
private boolean checkPermissionItem(List<PermissionVO> itemList,PermissionVO permissionVO ){
for(int i=0;i<itemList.size();i++){
PermissionVO itemPermissionVO = (PermissionVO)itemList.get(i);
if(permissionVO.getCode().equals(itemPermissionVO.getCode())){
return true;
}
}
return false;
}
发表评论
-
支持ctrl,shift键的拖拽排序
2011-08-26 11:23 1168终于搞定了,太不容易了。最近公司要弄一个拖拽排序的 ... -
jquery 图片 无缝 滚动 插件
2011-08-05 13:30 2597插件原文地址:http://playground.mobily ... -
jquery plugin - pngFix 修改
2011-06-23 14:09 1117以前IE下png都用的是pngFix.js这个脚本来解决的,一 ... -
jquery plugin 集合
2011-06-22 22:01 1133jQuery插件-文件上传(File upload)A ... -
jquery 中的 mouseover ,mouseout 多次触发 解决办法
2011-06-14 18:07 2239这篇文章分析的不错:http://www.cnblogs ... -
java 启动 浏览器
2011-04-18 10:10 0import java.lang.reflect.Method ... -
jquery1.5 test 环境搭建
2011-02-21 18:35 8381.下载qunit:https://download.gith ... -
学习Jquery 源码 有一收获 DOM 加载 重新认识
2010-12-30 22:45 1757刚才看Jquery源码时,看见如下,一段不明白,上网一搜,豁然 ... -
URL补全
2010-11-25 14:10 790public static String complet ... -
深入剖析Spring Web源码 - 整理的文档和日志的索引
2010-10-29 18:37 1171原文地址:http://blog.csdn.net/rober ... -
java 操作 excel
2010-09-16 15:47 970今天公司项目中要把用 ...
相关推荐
本项目是基于BootCamp、JQuery和Spring框架构建的一个完整的图书馆管理系统。这个系统旨在提供一套高效、便捷的图书管理解决方案,涵盖了图书入库、借阅、归还、查询等多种功能,旨在提升图书馆的服务质量和效率。 ...
"jQuery多级菜单复杂权限设置系统"正是这样一个解决方案,它利用jQuery的灵活性和强大功能,为用户提供直观、美观且易于操作的菜单导航,并结合复杂的权限设定,确保不同用户群体能够访问到他们被授权的内容。...
”表明这是一个基于jQuery技术构建的企业级后台管理系统,它可能包含了一系列用于处理公司日常运营、数据管理、用户交互等功能的网页应用。 描述提到使用了“vs2008+access”,这表示开发环境是Visual Studio 2008...
2. **安全验证**:处理用户的登录验证,确保只有授权用户才能访问jWebOS及其内容。 3. **API接口**:提供RESTful API,使前端组件能够调用后端服务,如文件上传、下载、同步等。 4. **动态内容生成**:根据用户...
《构建电子相册系统:Spring、Hibernate、Servlet与jQuery的深度整合》 在现代互联网应用中,电子相册系统已经成为用户存储、分享个人照片的重要平台。本系统利用Java技术栈,结合Spring、Hibernate、Servlet和...
在这个上下文中,C#可能用于处理从前端发送的截图数据,并将其保存到服务器的文件系统或者数据库中。 要实现“jquery截图并保存”,通常会采用以下步骤: 1. **选取屏幕区域**:使用HTML5的Canvas元素和`...
"jQuery在线考试答题代码"是利用jQuery技术实现的一种在线考试系统,旨在提供用户友好的界面和流畅的用户体验,让学生或考生能够方便地进行线上答题。 这个系统包含了多种题型,如单项选择题、多项选择题、判断题、...
这是一个基于SpringBoot、MyBatis、Layui、Shiro和jQuery技术栈的教务管理系统与微信小程序的源码项目,适用于毕业设计等场景。这个系统涵盖了教育机构日常管理的多个核心功能,提供了完整的前后端解决方案。下面...
标题中的“2018最新PHP+mysql域名授权查询系统”指的是一个基于PHP编程语言和MySQL数据库技术构建的用于授权验证的系统。这样的系统通常用于管理软件或在线服务的许可证,确保用户在合法的域名下使用产品。它可能...
本篇文章将深入探讨如何利用jQuery UI搭建一个Portal系统,以及如何通过用户控件实现模块化,并解决不同用户保存个性化布局的问题。 首先,让我们理解jQuery UI的核心组件。jQuery UI包括了各种UI元素,如可拖动...
总结来说,"带后台jQuery galleryview幻灯片"是一个集成了前后端功能的图片展示解决方案,它利用jQuery库实现了动态幻灯片效果,与后端系统交互进行内容管理,同时具备高度的可定制性和良好的用户体验。开发者需要...
同时,开发者从网络上找到了这个控件,并且js文件包含了原作者的签名,这表明该代码可能是开源的或者有明确的授权协议,需要尊重原作者的工作并遵循相应的使用条款。 在提供的文件列表中,我们看到了以下三个文件:...
5. **安全框架(如Spring Security)**:结合Spring Security等安全框架,实现用户认证和授权,确保应用安全。 四、实际应用示例 一个典型的jQueryEasyUI应用可能包括以下步骤: - 使用HTML5和jQueryEasyUI的组件...
【标题】"漂亮的jquery后台管理页面"所涉及的知识点主要集中在使用jQuery技术构建美观的后台管理系统界面。jQuery是一个高效、简洁且功能丰富的JavaScript库,它极大地简化了JavaScript代码的编写,使得网页动态交互...
在新闻管理系统中,jQuery可能会用于实现如分页、新闻加载、搜索过滤等功能,提升用户的操作体验。 PHP是一种广泛使用的开源服务器端脚本语言,尤其适合Web开发。它能够与MySQL等数据库进行交互,处理用户请求,...
4. **jQuery插件**: 这个QQ微信微博分享插件是jQuery生态系统中的一个扩展,它扩展了jQuery的功能,使得开发者能够轻松添加分享功能而无需从零开始编写代码。 5. **jQuery实例**: "index.html"很可能是这个插件的...
5. 集成系统认证授权模块 6. 提供角色,部门,用户,菜单,前台应用程序授权 角色对用户授权 角色对菜单授权 角色对部门授权 角色对应用程序授权(多个前台应用公用一个后台权限管理系统) 部门对用户授权 7. ...