角色操作-查询所有
RoleController
@RequestMapping ( "/role" )
@Controller
public class RoleController {
@Autowired
private IRoleService roleService;
@RequestMapping ( "/findAll.do" )
public ModelAndView findAll ( ) throws Exception {
ModelAndView mv = new ModelAndView ( ) ;
List< Role> roleList = roleService. findAll ( ) ;
mv. addObject ( "roleList" , roleList) ;
mv. setViewName ( "role-list" ) ;
return mv;
}
}
RoleServiceImpl
@Service
@Transactional
public class RoleServiceImpl implements IRoleService {
@Autowired
private IRoleDao roleDao;
@Override
public List< Role> findAll ( ) throws Exception{
return roleDao. findAll ( ) ;
}
}
IRoleDao
public interface IRoleDao {
@Select ( "select * from role where id in (select roleId from users_role where userId=#{userId})" )
@Results ( {
@Result ( id = true , property = "id" , column = "id" ) ,
@Result ( property = "roleName" , column = "roleName" ) ,
@Result ( property = "roleDesc" , column = "roleDesc" ) ,
@Result ( property = "permissions" , column = "id" , javaType = java. util. List. class , many = @Many ( select = "com.itheima.ssm.dao.IPermissionDao.findPermissionByRoleId" ) )
} )
public List< Role> findRoleByUserId ( String userId) throws Exception;
@Select ( "select * from role" )
List< Role> findAll ( ) throws Exception;
}
role-list.jsp
body class = "hold-transition skin-blue sidebar-mini" >
< div class = "wrapper" >
< ! -- 页面头部 -- >
< jsp: include page= "header.jsp" > < / jsp: include>
< ! -- 页面头部 / -- >
< ! -- 导航侧栏 -- >
< jsp: include page= "aside.jsp" > < / jsp: include>
< ! -- 导航侧栏 / -- >
< ! -- 内容区域 -- >
< div class = "content-wrapper" >
< ! -- 内容头部 -- >
< section class = "content-header" >
< h1>
角色管理 < small> 全部角色< / small>
< / h1>
< ol class = "breadcrumb" >
< li> < a href= "${pageContext.request.contextPath}/index.jsp" > < i
class = "fa fa-dashboard" > < / i> 首页< / a> < / li>
< li> < a
href= "${pageContext.request.contextPath}/role/findAll.do" > 角色管理< / a> < / li>
< li class = "active" > 全部角色< / li>
< / ol>
< / section>
< ! -- 内容头部 / -- >
< ! -- 正文区域 -- >
< section class = "content" > < ! -- . box- body -- >
< div class = "box box-primary" >
< div class = "box-header with-border" >
< h3 class = "box-title" > 列表< / h3>
< / div>
< div class = "box-body" >
< ! -- 数据表格 -- >
< div class = "table-box" >
< ! -- 工具栏-- >
< div class = "pull-left" >
< div class = "form-group form-inline" >
< div class = "btn-group" >
< button type= "button" class = "btn btn-default" title= "新建" onclick= "location.href='${pageContext.request.contextPath}/pages/role-add.jsp'" >
< i class = "fa fa-file-o" > < / i> 新建
< / button>
< button type= "button" class = "btn btn-default" title= "刷新" >
< i class = "fa fa-refresh" > < / i> 刷新
< / button>
< / div>
< / div>
< / div>
< div class = "box-tools pull-right" >
< div class = "has-feedback" >
< input type= "text" class = "form-control input-sm"
placeholder= "搜索" > < span
class = "glyphicon glyphicon-search form-control-feedback" > < / span>
< / div>
< / div>
< ! -- 工具栏/ -- >
< ! -- 数据列表-- >
< table id= "dataList"
class = "table table-bordered table-striped table-hover dataTable" >
< thead>
< tr>
< th class = "" style= "padding-right: 0px" > < input
id= "selall" type= "checkbox" class = "icheckbox_square-blue" >
< / th>
< th class = "sorting_asc" > ID< / th>
< th class = "sorting_desc" > 角色名称< / th>
< th class = "sorting_asc sorting_asc_disabled" > 描述< / th>
< th class = "text-center" > 操作< / th>
< / tr>
< / thead>
< 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}/role/findById.do?id=${role.id}" class = "btn bg-olive btn-xs" > 详情< / a>
< a href= "${pageContext.request.contextPath}/role/deleteRole.do?id=${role.id}" class = "btn bg-olive btn-xs" > 角色删除< / a>
< a href= "${pageContext.request.contextPath}/role/findRoleByIdAndAllPermission.do?id=${role.id}" class = "btn bg-olive btn-xs" > 添加权限< / a>
< / td>
< / tr>
< / c: forEach>
< / tbody>
< ! --
< tfoot>
< tr>
< th> Rendering engine< / th>
< th> Browser< / th>
< th> Platform ( s) < / th>
< th> Engine version< / th>
< th> CSS grade< / th>
< / tr>
< / tfoot> -- >
< / table>
< ! -- 数据列表/ -- >
< / div>
< ! -- 数据表格 / -- >
< / div>
< ! -- / . box- body -- >
< ! -- . box- footer-- >
< div class = "box-footer" >
< div class = "pull-left" >
< div class = "form-group form-inline" >
总共2 页,共14 条数据。 每页 < select class = "form-control" >
< option> 1 < / option>
< option> 2 < / option>
< option> 3 < / option>
< option> 4 < / option>
< option> 5 < / option>
< / select> 条
< / div>
< / div>
< div class = "box-tools pull-right" >
< ul class = "pagination" >
< li> < a href= "#" aria- label= "Previous" > 首页< / a> < / li>
< li> < a href= "#" > 上一页< / a> < / li>
< li> < a href= "#" > 1 < / a> < / li>
< li> < a href= "#" > 2 < / a> < / li>
< li> < a href= "#" > 3 < / a> < / li>
< li> < a href= "#" > 4 < / a> < / li>
< li> < a href= "#" > 5 < / a> < / li>
< li> < a href= "#" > 下一页< / a> < / li>
< li> < a href= "#" aria- label= "Next" > 尾页< / a> < / li>
< / ul>
< / div>
< / div>
< ! -- / . box- footer-- >
< / div>
< / section>
< ! -- 正文区域 / -- >
< / div>
< ! -- @@close -- >
< ! -- 内容区域 / -- >
< ! -- 底部导航 -- >
< footer class = "main-footer" >
< div class = "pull-right hidden-xs" >
< b> Version< / b> 1.0 .8
< / div>
< strong> Copyright & copy; 2014 - 2017 < a
href= "http://www.itcast.cn" > 研究院研发部< / a> .
< / strong> All rights reserved. < / footer>
< ! -- 底部导航 / -- >
角色添加
RoleController
save
@RequestMapping ( "/role" )
@Controller
public class RoleController {
@Autowired
private IRoleService roleService;
@RequestMapping ( "/save.do" )
public String save ( Role role) throws Exception {
roleService. save ( role) ;
return "redirect:findAll.do" ;
}
@RequestMapping ( "/findAll.do" )
public ModelAndView findAll ( ) throws Exception {
ModelAndView mv = new ModelAndView ( ) ;
List< Role> roleList = roleService. findAll ( ) ;
mv. addObject ( "roleList" , roleList) ;
mv. setViewName ( "role-list" ) ;
return mv;
}
}
RoleServiceImpl
save
@Service
@Transactional
public class RoleServiceImpl implements IRoleService {
@Autowired
private IRoleDao roleDao;
@Override
public void save ( Role role) {
roleDao. save ( role) ;
}
@Override
public List< Role> findAll ( ) throws Exception{
return roleDao. findAll ( ) ;
}
}
IRoleDao
save
public interface IRoleDao {
@Select ( "select * from role where id in (select roleId from users_role where userId=#{userId})" )
@Results ( {
@Result ( id = true , property = "id" , column = "id" ) ,
@Result ( property = "roleName" , column = "roleName" ) ,
@Result ( property = "roleDesc" , column = "roleDesc" ) ,
@Result ( property = "permissions" , column = "id" , javaType = java. util. List. class , many = @Many ( select = "com.itheima.ssm.dao.IPermissionDao.findPermissionByRoleId" ) )
} )
public List< Role> findRoleByUserId ( String userId) throws Exception;
@Select ( "select * from role" )
List< Role> findAll ( ) throws Exception;
@Insert ( "insert into role(roleName,roleDesc) values(#{roleName},#{roleDesc})" )
void save ( Role role) ;
}
role-add.jsp
< div class = "wrapper" >
< ! -- 页面头部 -- >
< jsp: include page= "header.jsp" > < / jsp: include>
< ! -- 页面头部 / -- >
< ! -- 导航侧栏 -- >
< jsp: include page= "aside.jsp" > < / jsp: include>
< ! -- 导航侧栏 / -- >
< ! -- 内容区域 -- >
< div class = "content-wrapper" >
< ! -- 内容头部 -- >
< section class = "content-header" >
< h1>
角色管理 < small> 角色表单< / small>
< / h1>
< ol class = "breadcrumb" >
< li> < a href= "${pageContext.request.contextPath}/index.jsp" > < i
class = "fa fa-dashboard" > < / i> 首页< / a> < / li>
< li> < a href= "${pageContext.request.contextPath}/role/findAll.do" > 角色管理< / a> < / li>
< li class = "active" > 角色表单< / li>
< / ol>
< / section>
< ! -- 内容头部 / -- >
< form action= "${pageContext.request.contextPath}/role/save.do"
method= "post" >
< ! -- 正文区域 -- >
< section class = "content" > < ! -- 产品信息-- >
< 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= "roleName"
placeholder= "角色名称" value= "" >
< / div>
< div class = "col-md-2 title" > 角色描述< / div>
< div class = "col-md-4 data" >
< input type= "text" class = "form-control" name= "roleDesc"
placeholder= "角色描述" value= "" >
< / div>
< / div>
< / div>
< ! -- 订单信息/ -- > < ! -- 工具栏-- >
< div class = "box-tools text-center" >
< button type= "submit" class = "btn bg-maroon" > 保存< / button>
< button type= "button" class = "btn bg-default"
onclick= "history.back(-1);" > 返回< / button>
< / div>
< ! -- 工具栏/ -- > < / section>
< ! -- 正文区域 / -- >
< / form>
< / div>
< ! -- 内容区域 / -- >
< ! -- 底部导航 -- >
< footer class = "main-footer" >
< div class = "pull-right hidden-xs" >
< b> Version< / b> 1.0 .8
< / div>
< strong> Copyright & copy; 2014 - 2017 < a
href= "http://www.itcast.cn" > 研究院研发部< / a> .
< / strong> All rights reserved. < / footer>
< ! -- 底部导航 / -- >
< / div>
角色详情操作
RoleController
@RequestMapping ( "/findById.do" )
public ModelAndView findById ( @RequestParam ( name= "id" , required= true ) String roleId) throws Exception{
ModelAndView mv = new ModelAndView ( ) ;
Role role= roleService. findById ( roleId) ;
mv. addObject ( "role" , role) ;
mv. setViewName ( "role-show" ) ;
return mv;
}
RoleServiceImpl
@Override
public Role findById ( String roleId) throws Exception {
return roleDao. findById ( roleId) ;
}
IRoleDao
@Results ( {
@Result ( id = true , property = "id" , column = "id" ) ,
@Result ( property = "roleName" , column = "roleName" ) ,
@Result ( property = "roleDesc" , column = "roleDesc" ) ,
@Result ( property = "permissions" , column = "id" , javaType = java. util. List. class , many = @Many ( select = "com.itheima.ssm.dao.IPermissionDao.findPermissionByRoleId" ) )
} )
Role findById ( String roleId) ;
IPermissionDao
public interface IPermissionDao {
@Select ( "select * from permission where id in (select permissionId from role_permission where roleId=#{id} )" )
public List< Permission> findPermissionByRoleId ( String id) throws Exception;
role-show.jsp
< div class = "wrapper" >
< ! -- 页面头部 -- >
< jsp: include page= "header.jsp" > < / jsp: include>
< ! -- 页面头部 / -- >
< ! -- 导航侧栏 -- >
< jsp: include page= "aside.jsp" > < / jsp: include>
< ! -- 导航侧栏 / -- >
< ! -- 内容区域 -- >
< div class = "content-wrapper" >
< ! -- 内容头部 -- >
< section class = "content-header" >
< h1>
角色管理
< small> 全部用户< / small>
< / h1>
< ol class = "breadcrumb" >
< li> < a href= "${pageContext.request.contextPath}/index.jsp" > < i
class = "fa fa-dashboard" > < / i> 首页< / a> < / li>
< li> < a
href= "${pageContext.request.contextPath}/role/findAll.do" > 角色管理< / a> < / li>
< li class = "active" > 全部用户< / li>
< / ol>
< / section>
< ! -- 内容头部 / -- >
< ! -- 正文区域 -- >
< section class = "content" > < ! -- . box- body -- >
< div class = "box box-primary" >
< div class = "box-header with-border" >
< h3 class = "box-title" > 列表< / h3>
< / div>
< div class = "box-body" >
< ! -- 数据表格 -- >
< div class = "table-box" >
< ! -- 工具栏-- >
< div class = "pull-left" >
< div class = "form-group form-inline" >
< div class = "btn-group" >
< button type= "button" class = "btn btn-default" title= "新建" >
< i class = "fa fa-file-o" > < / i> 新建
< / button>
< button type= "button" class = "btn btn-default" title= "刷新" >
< i class = "fa fa-refresh" > < / i> 刷新
< / button>
< / div>
< / div>
< / div>
< div class = "box-tools pull-right" >
< div class = "has-feedback" >
< input type= "text" class = "form-control input-sm"
placeholder= "搜索" > < span
class = "glyphicon glyphicon-search form-control-feedback" > < / span>
< / div>
< / div>
< ! -- 工具栏/ -- >
< ! -- 数据列表-- >
< div class = "tab-pane" id= "tab-treetable" >
< table id= "collapse-table"
class = "table table-bordered table-hover dataTable" >
< thead>
< tr>
< th> 名称< / th>
< th> 描述< / th>
< / tr>
< / thead>
< tr data- tt- id= "0" >
< td colspan= "2" > ${ role. roleName} < / td>
< / tr>
< tbody>
< c: forEach items= "${role.permissions}" var= "permission" varStatus= "vs1" >
< tr data- tt- id= "${vs1.index+1}" data- tt- parent- id= "0" >
< td> ${ permission. permissionName } < / td>
< td> ${ permission. url } < / td>
< / tr>
< / c: forEach>
< / tbody>
< / table>
< / div>
< ! -- 数据列表/ -- >
< / div>
< ! -- 数据表格 / -- >
< / div>
< ! -- / . box- body -- >
< ! -- . box- footer-- >
< div class = "box-footer" >
< div class = "pull-left" >
< div class = "form-group form-inline" >
总共2 页,共14 条数据。 每页 < select class = "form-control" >
< option> 1 < / option>
< option> 2 < / option>
< option> 3 < / option>
< option> 4 < / option>
< option> 5 < / option>
< / select> 条
< / div>
< / div>
< div class = "box-tools pull-right" >
< ul class = "pagination" >
< li> < a href= "#" aria- label= "Previous" > 首页< / a> < / li>
< li> < a href= "#" > 上一页< / a> < / li>
< li> < a href= "#" > 1 < / a> < / li>
< li> < a href= "#" > 2 < / a> < / li>
< li> < a href= "#" > 3 < / a> < / li>
< li> < a href= "#" > 4 < / a> < / li>
< li> < a href= "#" > 5 < / a> < / li>
< li> < a href= "#" > 下一页< / a> < / li>
< li> < a href= "#" aria- label= "Next" > 尾页< / a> < / li>
< / ul>
< / div>
< / div>
< ! -- / . box- footer-- >
< / div>
< / section>
< ! -- 正文区域 / -- >
< / div>
角色删除
RoleController
@RequestMapping ( "/deleteRole.do" )
public String deleteRole ( @RequestParam ( name= "id" , required = true ) String roleId) throws Exception {
roleService. deleteRoleById ( roleId) ;
return "redirect:findAll.do" ;
}
RoleServiceImpl
@Override
public void deleteRoleById ( String roleId) throws Exception {
roleDao. deleteFromUser_RoleByRoleId ( roleId) ;
roleDao. deleteFromRole_PermissionByRoleId ( roleId) ;
roleDao. deleteRoleById ( roleId) ;
}
IRoleDao
@Delete ( "delete from users_role where roleId=#{roleId}" )
void deleteFromUser_RoleByRoleId ( String roleId) ;
@Delete ( "delete from role_permission where roleId=#{roleId}" )
void deleteFromRole_PermissionByRoleId ( String roleId) ;
@Delete ( "delete from role where id=#{roleId}" )
void deleteRoleById ( String roleId) ;
< td class = "text-center" >
< a href= "${pageContext.request.contextPath}/role/findById.do?id=${role.id}" class = "btn bg-olive btn-xs" > 详情< / a>
< a href= "${pageContext.request.contextPath}/role/deleteRole.do?id=${role.id}" class = "btn bg-olive btn-xs" > 角色删除< / a>
< a href= "${pageContext.request.contextPath}/role/findRoleByIdAndAllPermission.do?id=${role.id}" class = "btn bg-olive btn-xs" > 添加权限< / a>
< / td>