**HTML:**
//工具栏
var toolbar = [ {
{
id : 'button-search',
text :'查询',
iconCls: 'icon-search',
handler : function(){
$('#searchForm').form('clear');
$("#searchWindow").window('open');
}
}];
$(function(){
// 先将body隐藏,再显示,不会出现页面刷新效果
$("body").css({visibility:"visible"});
// 区域管理数据表格
$('#grid').datagrid( {
iconCls : 'icon-forward',
fit : true,
border : false,
rownumbers : true,
striped : true,
pageList: [29,58,100],
pagination : true,
toolbar : toolbar,
url : "../../area_pageQuery",
idField : 'id',
columns : columns,
onDblClickRow : doDblClickRow
});
DAO:
public interface AreaDao extend JpaRepository<Area,String>,JpaSpecificationExecutor<Area> {
}
service:
/**
* 模糊查询及分页查询
* @param page
* @param rows
* @return
*/
public Page<Area> pageQuery(int page, int rows,Area area);
serviceImpl:
/**
* 分页查询
* @param page
* @param rows
* @return
*/
@Override
public Page pageQuery(int page, int rows,Area area) {
Specification<Area> specification = new Specification<Area>() {
@Override
public Predicate toPredicate(Root<Area> root, CriteriaQuery<?> criteriaQuery, CriteriaBuilder cb) {
List<Predicate> list = new ArrayList<Predicate>();
// 简单单表查询
if (StringUtils.isNotBlank(area.getProvince())) {
Predicate p1 = cb.equal(root.get("province").as(String.class), area.getProvince());
list.add(p1);
}
if (StringUtils.isNotBlank(area.getCity())) {
Predicate p2 = cb.like(root.get("city").as(String.class), "%" + area.getCity() + "%");
list.add(p2);
}
if (StringUtils.isNotBlank(area.getDistrict())) {
Predicate p3 = cb.equal(root.get("district").as(String.class), area.getDistrict());
list.add(p3);
}
return cb.and(list.toArray(new Predicate[0]));
}
};
PageRequest example = PageRequest.of(page - 1, rows);
Page<Area> areas = areaDao.findAll(specification,example);
return areas;
}
补充:
// 多表查询
Join<Courier, Standard> standardJoin = root.join("standard",JoinType.INNER);
if (courier.getStandard() != null&& StringUtils.isNotBlank(courier.getStandard().getName())) {
Predicate p4 = cb.like(standardJoin.get("name").as(String.class), "%"+ courier.getStandard().getName() + "%");
list.add(p4);
}
controller:
@RequestMapping("/area_pageQuery")
@ResponseBody
public Map<String, Object> pageQuery(int page, int rows, Area area) {
Page<Area> areas = areaService.pageQuery(page, rows, area);
HashMap<String, Object> map = new HashMap<>();
map.put("total", areas.getTotalElements());
map.put("rows", areas.getContent());
return map;
}