EASYUI结合SSH的权限管理模块<一>

java后台一般有一个权限管理模块,控制用户访问资源或者页面操作按钮。

最近一个项目也需要用到该功能,该管理模块模仿Easyui视频作者孙宇的权限管理系统,详细请见:

http://yusun.iteye.com/blog/1527018

打算分3篇博文将设计思路与关键代码记录下来,以备有需要的同学使用:

这一篇主要讲数据库结构:使用Mysql数据库

1、建立资源表(tresource),该表主要添加系统的访问资源,有父级级联关系,所以需要添加pid字段。


pid需要设置外键,自引用id 



 

测试数据如下:



 

2、建立角色表(trole),该表负责记录系统的角色

该表有2列    id(varchar 36)    text(varchar 200) 

id:角色id

text:角色显示名,如:超级管理员,普通管理员

 

3、建立角色资源对应表(trole_tresource),该表负责关联角色表与资源表。



 通过外键关联另外两张表 ,role_id映射role表id,resource_id映射resource表id,具体操作见表1的建立。

 

4、建立用户表(tuser)

 

 
5、建立用户角色对应表(tuser_trole)

该表 字段如下:

id : varchar(36) 

role_id:varchar(36)     外键 对应角色表role.id

user_id:vatchar(36)     外键 对应用户表user.id

外键建立参照表1

 

6、使用hibernate反向工程生成model层


 



 

 
 这样就能自动生成实体类之间的对应关系:如下所示:

        @ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "role_id", nullable = false)
	public Trole getTrole() {
		return this.trole;
	}

	public void setTrole(Trole trole) {
		this.trole = trole;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "resource_id", nullable = false)
	public Tresource getTresource() {
		return this.tresource;
	}

	public void setTresource(Tresource tresource) {
		this.tresource = tresource;
	}

 

在上述代码中,使用了一个`<table>`元素来呈现表格,并在表格的第一行添加了一个`<legend>`元素作为标题。在第一行的标题中,使用了一个`<a>`元素来实现“增加行”功能,并为它添加了一个`onclick`事件,当用户点击时会调用JavaScript中的`addTableRow()`函数。 在表格的第二行开始,使用`<thead>`元素来定义表格的表头,其中包括每个列的标题。在每个单元格中,使用`<input>`元素来呈现表格中的数据,并根据需要设置不同的`type`属性(如`text`, `date`, `file`等)。 在每一行的第一列中,使用了一个“删除”按钮,当用户点击该按钮时会调用JavaScript中的删除函数,从而实现删除该行的操作。 JavaScript代码示例(增加行和删除行): ```javascript // 增加行 function addTableRow() { var table = document.querySelector('table'); var newRow = table.insertRow(-1); var cells = ['操作', '提单号/运单号', '一程日期', '二程日期', '预计到货日期', '海船公司', '放箱日期', '放箱单上传']; for (var i = 0; i < cells.length; i++) { var cell = newRow.insertCell(i); if (i === 0) { cell.innerHTML = '<input type="button" name="comment" value="删除" onclick="deleteTableRow(this)">'; } else { cell.innerHTML = '<input type="text" name="comment">'; } } } // 删除行 function deleteTableRow(button) { var row = button.parentNode.parentNode; row.parentNode.removeChild(row); } ``` 在`addTableRow()`函数中,首先找到表格元素,然后使用`insertRow()`方法在表格的末尾插入一行。接着,循环遍历每个单元格,并使用`insertCell()`方法将单元格插入到新行中,根据需要设置不同的内容和属性。在第一列中,使用`<input>`元素创建一个“删除”按钮,并为它添加一个`onclick`事件,当用户点击时会调用`deleteTableRow()`函数。最后,在`deleteTableRow()`函数中,找到要删除的行,并使用`removeChild()`方法将其从表格中删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值