(五)关于页面的说明

这个项目一直说有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'
});

在菜单信息设置这个页面,其实就是设置各个页面对应的页面地址,页面中间是表格,可以做添加修改删除,右侧有棵树,这是一颗菜单树,可以用右键实现菜单节点的添加修改删除,也可以移动菜单节点的顺序,操作完成点个保存就把数据同步到后台了。这个只是一时兴起做的简易添加,限制为二级菜单,需要更多级的结构可以再改造。

角色的管理主要还是菜单树的管理,没啥特殊的。

大概就是这样,完。

转载于:https://my.oschina.net/u/2274874/blog/852718

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值