企业级权限管理项目(七)
判断唯一用户名
前端
<script type="text/javascript">
/**
* 判断是否唯一用户名
*/
function isUniqueUsername(usernameText) {
var username = usernameText.value;
//请求Controller判断用户名是否唯一
$.ajax({
url:"${pageContext.request.contextPath}/user/isUniqueUsername",
data:{"username":username},
type:"post",
success:function (data) {
if(data=="false"){
//如果返回false,不可以使用
//提示用户用户名已经被占用 -- 设置文本框为红色边框 1px 实线
$("#username").attr("style","border:red 1px solid");
//保存按钮设置为不可用
$("#saveBtn").prop("disabled",true);
}else {
//如果返回true,设置保存按钮可用
//还原文本框状态
$("#username").attr("style","");
//保存按钮可用
$("#saveBtn").prop("disabled",false);
}
}
});
}
</script>
UserController
/**
* 判断是否唯一用户名
* @ResponseBody 把结果集转成json以流的形式返回
* @param username
* @return
*/
@RequestMapping("/isUniqueUsername")
@ResponseBody
public String isUniqueUsername(String username){
//判断是否存在该用户名
boolean b = userService.isUniqueUsername(username);
return String.valueOf(b);
}
UserService
@Override
public boolean isUniqueUsername(String username) {
SysUser user = userDao.findAllUserByUsername(username);
//user为null,说明可以使用
return user==null;
}
UserDao
/**
* 判断唯一用户名
* @param username
* @return
*/
@Select("select * from sys_user where username = #{username}")
SysUser findAllUserByUsername(String username);
角色模块
查询所有角色
前端
<tbody>
<c:forEach items="${roleList}" var="role">
<tr>
<td><input name="ids" type="checkbox"></td>
<td>${role.id }</td>
<td>${role.roleName }</td>
<td>${role.roleDesc }</td>
<td class="text-center">
<a href="${pageContext.request.contextPath}/pages/role-permission-add.jsp" class="btn bg-olive btn-xs">添加权限</a>
</td>
</tr>
</c:forEach>
</tbody>
RoleController
@Controller
@RequestMapping("/role")
public class RoleController {
@Autowired
RoleService roleService;
/**
* 查询全部
* @return
*/
@RequestMapping("/findAll")
public ModelAndView findAll(){
//准备数据
List<Role> roleList = roleService.findAll();
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("roleList",roleList);
modelAndView.setViewName("role-list");
return modelAndView;
}
}
RoleService
@Service
public class RoleServiceImpl implements RoleService {
@Autowired
RoleDao roleDao;
@Override
public List<Role> findAll() {
return roleDao.findAll();
}
}
RoleDao
/**
* 查询全部
* @return
*/
@Select("select * from sys_role")
List<Role> findAll();
保存角色
RoleController
@RequestMapping("/save")
public String save(Role role){
roleService.save(role);
return "redirect:/role/findAll";
}
RoleService
@Service
@Override
public void save(Role role) {
roleDao.save(role);
}
RoleDao
/**
* 保存角色
* @param role
*/
@Insert("insert into sys_role values(role_seq.nextval,#{roleName},#{roleDesc})")
void save(Role role);
权限模块
创建表:注意pid为该权限的上一级的id
create sequence permission_seq;
CREATE TABLE sys_permission(
id number PRIMARY KEY,
permissionName VARCHAR2(50) ,
url VARCHAR2(50),
pid number
)
查询全部
前端
<c:forEach items="${permissionList}" var="permission">
<tr>
<td><input name="ids" type="checkbox"></td>
<td>${permission.id}</td>
<td>${permission.permissionName}</td>
<td>${permission.url}</td>
<td class="text-center">
<a href="${pageContext.request.contextPath}/pages/permission-add.jsp" class="btn bg-olive btn-xs">详情</a>
</td>
</tr>
</c:forEach>
PermissionController
@Controller
@RequestMapping("/permission")
public class PermissionController {
@Autowired
PermissionService permissionService;
/**
* 查询全部
* @return
*/
@RequestMapping("/findAll")
public ModelAndView findAll(){
//查询数据
List<Permission> permissionList = permissionService.findAll();
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("permissionList",permissionList);
modelAndView.setViewName("permission-list");
return modelAndView;
}
}
PermissionService
@Service
public class PermissionServiceImpl implements PermissionService {
@Autowired
PermissionDao permissionDao;
@Override
public List<Permission> findAll() {
return permissionDao.findAll();
}
}
PermissionDao
public interface PermissionDao {
/**
* 查询全部
* @return
*/
@Select("select * from sys_permission")
List<Permission> findAll();
}
保存回显
由于每个权限都要有父权限,所有添加一个下拉菜单
前端
<div class="panel panel-default">
<div class="panel-heading">权限资源信息</div>
<div class="row data-type">
<div class="col-md-2 title">权限资源名称</div>
<div class="col-md-4 data">
<input type="text" class="form-control" name="permissionName"
placeholder="权限资源名称" value="">
</div>
<div class="col-md-2 title">权限资源URL</div>
<div class="col-md-4 data">
<input type="text" class="form-control" name="url"
placeholder="url" value="">
</div>
<div class="col-md-2 title">父权限</div>
<div class="col-md-4 data">
<select class="form-control select2" style="width: 100%"
name="payType">
<c:forEach items="${permissionList}" var="permission">
<%--
value:给程序员用的
文本:客户看的
--%>
<option value="${permission.id}">${permission.permissionName}</option>
</c:forEach>
</select>
</div>
</div>
</div>
PermissionController
/**
* 添加数据回显
* 查询所有的父权限
* @return
*/
@RequestMapping("/saveUI")
public ModelAndView saveUI(){
//查询数据
List<Permission> permissionList = permissionService.findAllParentPermission();
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("permissionList",permissionList);
modelAndView.setViewName("permission-add");
return modelAndView;
}
PermissionService
@Override
public List<Permission> findAllParentPermission() {
return permissionDao.findAllParentPermission();
}
PermissionDao
@Override
public List<Permission> findAllParentPermission() {
return permissionDao.findAllParentPermission();
}
保存权限
PermissionController
/**
* 保存权限
* @param permission
* @return
*/
@RequestMapping("/save")
public String save(Permission permission){
permissionService.save(permission);
return "redirect:/permission/findAll";
}
PermissionService
@Override
public void save(Permission permission) {
permissionDao.save(permission);
}
PermissionDao
/**
* 保存权限
* @param permission
*/
@Insert("insert into sys_permission values(permission_seq.nextval,#{permissionName},#{url},#{pid})")
void save(Permission permission);