1@Controller@RequestMapping(value = '/admin/user')public class UserController { private static final Logger logger = LoggerFactory.getLogger(UserController.class); @Autowired private IUserService userService; @Autowired private IRoleService roleService;
2@RequestMapping(value = '/list/{pageNo}',method = RequestMethod.GET) public String list(Model model,@PathVariable('pageNo')Long pageNo){ Long count =userService.getCount(null).longValue(); Page page = new Page(pageNo,count); Listlists = userService.findList(page); model.addAttribute('list',lists); model.addAttribute('page',page); return 'user/list'; }
3/** * 跳转到添加用户的页面 * @param model * @return */ @RequestMapping(value = '/add',method = RequestMethod.GET) public String add(Model model){ logger.debug('跳转到添加用户的页面'); model.addAttribute('user',new User()); model.addAttribute('roles',roleService.list()); return 'user/add'; }
1/** * 添加用户保存的方法 * @param user * @param request * @return */ @RequestMapping(value = '/add',method = RequestMethod.POST) public String add(User user, HttpServletRequest request){ logger.debug('添加用户 post 方法'); logger.debug(user.toString()); List roleIdList = new ArrayList<>(); String[] roldIds = request.getParameterValues('roleId'); for(String roleId:roldIds){ roleIdList.add(Integer.parseInt(roleId)); } userService.add(user,roleIdList); // 重定向到本 Controller 的 list 方法(Get 方式) return 'redirect:list/1'; }
2@ResponseBody @RequestMapping(value = '/updateStatus',method = RequestMethod.POST) public Map updateStatus(User user){ User u = userService.update(user); Map result = new HashMap<>(); if(u != null){ result.put('success',true); }else { result.put('success',false); result.put('errorInfo','更新状态失败'); } return result; }
3/** * 跳转到用户信息更新页面 * @param id * @param model * @return */ @RequestMapping(value = '/update/{id}',method = RequestMethod.GET) public String update(@PathVariable('id') Integer id,Model model){ // 要从数据库查询对象进行回显 User user = userService.load(id); model.addAttribute('user',user); // 所有的角色列表 model.addAttribute('roles',roleService.list()); /** * 根据用户 id 查询用户的所有角色 */ List hasRoles = userService.listUserRole(id); /** * 将用户的所有角色 id 添加到一个字符串中 */ List rids = new ArrayList<>(); for(Role r:hasRoles) { rids.add(r.getId()); } // 指定用户拥有的角色信息 model.addAttribute('hasRole', rids); return 'user/update'; } /** * 更新用户的信息(包括更新用户绑定的角色) * @param user * @return */ @RequestMapping(value = '/update/{id}',method = RequestMethod.POST) public String update(User user,HttpServletRequest request,String[] newPassword,Model model){ // // TODO: 2016/9/18 这个过程还是可以优化的,如果属性没有发生变化的地方,是不须要更新的 logger.debug('user => ' + user); if(newPassword[0].equals(newPassword[1])){ if(newPassword[0]!=null && newPassword[0]!=''){ user.setPassword(newPassword[0]); } String[] roleIds = request.getParameterValues('roleId'); List roleIdList = new ArrayList<>(); for(String roleId:roleIds){ roleIdList.add(Integer.valueOf(roleId)); } userService.update(user,roleIdList); return 'redirect:/admin/user/list/1'; }else{ model.addAttribute('msg', '密码不一致'); return 'redirect:/admin/user/update/'+user.getId(); } }
4/** * 根据用户 id 跳转到用户权限的列表页面 * @return */ @RequestMapping(value = '/resources/{id}',method = RequestMethod.GET) public String listResources(@PathVariable('id') Integer userId,Model model){ List resourceList = userService.listAllResource(userId); User user = userService.load(userId); model.addAttribute('resources',resourceList); model.addAttribute('user',user); return 'user/resources'; } /** * 批量删除用户 * 1、删除用户数据 * 2、删除用户绑定的角色数据 * @param userIds * @return */ @ResponseBody @RequestMapping(value = '/delete',method = RequestMethod.POST) public Map delete( @RequestParam('userIds[]') List userIds){ Map result = new HashMap<>(); try{ userService.deleteUserAndRole(userIds); result.put('success',true); }catch (RuntimeException e){ e.printStackTrace(); result.put('success',false); result.put('errorInfo',e.getMessage()); } return result; }}