首页 > 代码库 > 组合查询--表单对象转化为json对象
组合查询--表单对象转化为json对象
//1.将page和rows封装到pageable中
Pageable pageable = new PageRequest(page, rows);
//2.创建组合条件查询条件对象
Specification<FixedArea> spec = new Specification<FixedArea>() {
@Override
public Predicate toPredicate(Root<FixedArea> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
//2.1创建存放已拼装条件的list集合
ArrayList<Predicate> predicates = new ArrayList<Predicate>();
//2.2进行组合查询条件的拼装
String id = model.getId();
if(StringUtils.isNotBlank(id)){
predicates.add(cb.equal(root.get("id").as(String.class), id));
}
String company = model.getCompany();
if(StringUtils.isNotBlank(company)){
predicates.add(cb.like(root.get("company").as(String.class), "%"+company+"&"));
}
//2.3创建存放拼装条件的predicate数组
Predicate[] predicateArr = new Predicate[predicates.size()];
//2.4返回拼装好的条件
return query.where(predicates.toArray(predicateArr)).getRestriction();
}
};
//3.执行分页查询
Page<FixedArea> page = fixedAreaService.pageQuery(spec,pageable);
//4.去除会造成no session 的 FixedArea实体类中的"many"字段
String[] excludes = { "subareas", "couriers" };
//调用baseAction中的方法将查询到的结果转化成json发送到前台
this.write2JsonObject(page, excludes);
-------------------------------------------------------------------------------------------------------------
baseAction中:
public void write2JsonObject(Page<?> page, String[] excludes) throws IOException {
// 构建json对象型数据
Map<String, Object> map = new HashMap<String, Object>();
map.put("total", page.getTotalElements());
map.put("rows", page.getContent());
// JsonConfig: 配置转换的json数据中不需要的属性
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(excludes);
// 将map转化为json
String json = JSONObject.fromObject(map, jsonConfig).toString();
ServletActionContext.getResponse().setContentType("test/json;charset=UTF-8");
ServletActionContext.getResponse().getWriter().print(json);
}
组合查询--表单对象转化为json对象