接着上篇分享,继续给大家分享自己的使用总结。
一、页面演示效果
Ps:LayUi这款套装版的前端框架数据表格自带分页功能,但是后台还是需要大家自己写的。
二、后台代码展示
java代码段(Controller)
@Controller
public class AdminController {
@Autowired
private AdminService adminService;
/**
*
* @Description (根据管理员用户名查询管理员信息)
* @param username
* @return HrAdmin
*/
@RequestMapping("/getAdmin")
@ResponseBody
public Map<String,Object> findAdminByUsername(String username) {
Map<String,Object> resultMap = new HashMap<>();
HrAdmin admin = adminService.findByAdminName(username);
List<HrAdmin> list = new ArrayList<HrAdmin>();
list.add(admin);
resultMap.put("data", list);
resultMap.put("count", "1");
resultMap.put("msg", "");
resultMap.put("code", "0");
return resultMap;
}
/**
*
* @Description (分页显示所有管理员)
* @param pageNum
* @return PageResult<HrAdmin>
*/
@RequestMapping("/getAdmins")
@ResponseBody
public Map<String,Object> getAdmins(Integer page){
if(page==null) {
page=1;
}
Map<String,Object> resultMap = new HashMap<>();
PageResult<HrAdmin> admins = adminService.getAdmins(page);
resultMap.put("data", admins.getList());
resultMap.put("count", admins.getTotal());
resultMap.put("msg", "");
resultMap.put("code", "0");
return resultMap;
}
}
相信看到这里你心理会有这样的疑问:为什么要把接收的对象放入Map中?为什么还要放入data、count、msg、code这四个参数?下文将为你解答~~~~~
java代码段(ServiceImpl)
@Service
public class AdminServiceImpl implements AdminService {
@Autowired
private AdminMapper adminMapper;
/**
* description:根据管理员名称查询管理员
*/
@Override
public HrAdmin findByAdminName(String username) {
return adminMapper.findByAdminName(username);
}
/**
* description:分页查询管理员
*/
@Override
public PageResult<HrAdmin> getAdmins(Integer pageNum) {
PageHelper.startPage(pageNum, 10);
List<HrAdmin> admins = adminMapper.getAdmins();
PageInfo<HrAdmin> info = new PageInfo<>(admins);
PageResult<HrAdmin> result = new PageResult<>();
result.setList(info.getList());
result.setPageNum(pageNum);
result.setPageSize(10);
result.setTotal(info.getTotal());
result.setTotalPage(info.getPages());
return result;
}
}
演示到这里也就告一段落了,相信持久层各位大猿们都不在话下,在下也就不班门弄斧了,接下来为大家解答上文中的问题。
(三)问题解答
1.为什么要把接收的对象放入Map中?2.为什么还要放入data、count、msg、code这四个参数?
答:因为LayUi中响应有这样的要求:
<!-- 参数的响应 -->
{
"code": 0,
"msg": "",
"count": 1000,
"data": [{}, {}]
}
其中code为状态码,msg为提示信息,count用于分页接收的信息数,data为接收的数据(Json)格式。相信为什么放如map中大家也心中清楚,其实这只是小编处理的一个方式,大家也可以自定义一个封装类用户页面响应。
到这里也就完结了,不足之处请指导,欢迎访问我的博客:谁让你是巧克力