(五)关于页面的说明
2017-03-06 00:00
120 查看
这个项目一直说有easyui,其实核心在后台的部分,前台的管理页面只是简单的一个系统管理:用户管理,角色管理,菜单管理。权限管理全靠角色和菜单组合管理。
这里的权限管理是很简单的,就是控制菜单,有权限访问的页面,就把菜单勾选,没有太多细节的控制。由于本人不是很擅长前端的布局,很多页面的风格、样式都是前人留的,看着代码很古老,比如table布局,加入收藏, 设为首页等功能。
由于平时在开发调试的时候,页面缓存问题很烦人,总是要清理浏览器缓存,有时候突然想到之前找到的资料,还有可能从浏览器历史记录看到,所以加了这么一块防缓存的,参考这里。虽然比较土,还是可以用的。
其次,关于超时问题,在SessionInterceptor里面,有这么段代码是判断是否需要登录的。
就是在http响应里 设置了一个header,sessionstatus。在common.js里有这么一段代码
因为几乎所有的页面都会引入common.js,所有的http post就会经过这么一层的控制,超时就跳转到首页。
还有这段代码是实现easyui的前端分页:
使用的时候,只要这么用就可以了。
在菜单信息设置这个页面,其实就是设置各个页面对应的页面地址,页面中间是表格,可以做添加修改删除,右侧有棵树,这是一颗菜单树,可以用右键实现菜单节点的添加修改删除,也可以移动菜单节点的顺序,操作完成点个保存就把数据同步到后台了。这个只是一时兴起做的简易添加,限制为二级菜单,需要更多级的结构可以再改造。
角色的管理主要还是菜单树的管理,没啥特殊的。
大概就是这样,完。
这里的权限管理是很简单的,就是控制菜单,有权限访问的页面,就把菜单勾选,没有太多细节的控制。由于本人不是很擅长前端的布局,很多页面的风格、样式都是前人留的,看着代码很古老,比如table布局,加入收藏, 设为首页等功能。
由于平时在开发调试的时候,页面缓存问题很烦人,总是要清理浏览器缓存,有时候突然想到之前找到的资料,还有可能从浏览器历史记录看到,所以加了这么一块防缓存的,参考这里。虽然比较土,还是可以用的。
其次,关于超时问题,在SessionInterceptor里面,有这么段代码是判断是否需要登录的。
if(needLogin) { Object userName = request.getSession().getAttribute("LOGIN_USER"); if(userName == null) { response.setHeader("sessionstatus", "timeout"); System.out.println("会话超时"); return false; } }
就是在http响应里 设置了一个header,sessionstatus。在common.js里有这么一段代码
//全局的ajax访问,处理ajax清求时sesion超时 $.ajaxSetup({ contentType:'application/x-www-form-urlencoded;charset=utf-8', complete:function(XMLHttpRequest,textStatus){ var sessionstatus = XMLHttpRequest.getResponseHeader('sessionstatus');//通过XMLHttpRequest取得响应头,sessionstatus, if(sessionstatus == 'timeout'){ //如果超时就处理 ,指定要跳转的页面 top.location = getContextPath(); } } });
因为几乎所有的页面都会引入common.js,所有的http post就会经过这么一层的控制,超时就跳转到首页。
还有这段代码是实现easyui的前端分页:
//前端分页过滤器,easyui 1.3.1可用 function pagerFilter(data){ if(data.total == undefined){ data.total = data.rows.length; } if(data.backuprows == undefined){ data.backuprows = data.rows; } var dg = $(this); var opts = dg.datagrid('options'); var pager = dg.datagrid('getPager'); pager.pagination({ onSelectPage:function(pageNum, pageSize){ opts.pageNumber = pageNum; opts.pageSize = pageSize; pager.pagination('refresh',{ pageNumber:pageNum, pageSize:pageSize }); dg.datagrid('loadData', data); } }); var start = (opts.pageNumber-1)*parseInt(opts.pageSize); var end = start + parseInt(opts.pageSize); data.rows = data.backuprows.slice(start, end); return data; }
使用的时候,只要这么用就可以了。
$('#datagrid').datagrid({ idField:'pid', border:false, rownumbers:true, pageSize: 20, singleSelect: true, loadFilter:pagerFilter, //关键就是这里 url:'url.do' });
在菜单信息设置这个页面,其实就是设置各个页面对应的页面地址,页面中间是表格,可以做添加修改删除,右侧有棵树,这是一颗菜单树,可以用右键实现菜单节点的添加修改删除,也可以移动菜单节点的顺序,操作完成点个保存就把数据同步到后台了。这个只是一时兴起做的简易添加,限制为二级菜单,需要更多级的结构可以再改造。
角色的管理主要还是菜单树的管理,没啥特殊的。
大概就是这样,完。
相关文章推荐
- W3C's Excessive DTD Traffic - 关于一些asp.net页面头信息的说明
- 【转】关于easyui的窗口和tab页面不执行js说明
- 关于《ASP.NET2.0网站开发实例教程》中1.1.4 Default.aspx页面的实现的说明
- GodSon - 关于easyui的窗口和tab页面不执行js说明
- 关于使用了inline-block导致页面布局不受控制的一点说明
- 关于easyui的窗口和tab页面不执行js说明
- 关于Easyui的窗口和tab页面不执行JS的原因说明
- 关于js文件在html页面中放的位置举例说明
- 关于网站所有404页面替换为腾讯公益404页面的说明
- 关于window.open()打开新页面会弹出Object页面的几点说明
- 关于导入模板后页面风格不变的说明
- 关于easyui通过href引入外部jsp页面js不执行的说明
- 关于在easyui中添加tab的时候不能执行href页面中的js的说明
- 有关一个 iframe 的问题,关于在 iframe 内的页面内登录成功后,如何由当前页直接转到另一个页面内?
- 关于MyIE2中博客园页面自动跳转的问题回答
- 关于页面局部刷新例程
- 关于页面缓存清除的方法小结
- 关于Asp.net 页面动态加载用户控件,出现“未能加载视图状态”的原因
- 关于smth分类的说明~
- Tuxedo 中关于时间的参数的说明