jQuery条件分页 代替离线查询(附代码)

发布时间 - 2026-01-11 02:50:28    点击率:
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Join;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;

import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;

 @Action("courierAction_pageQuery")
 public String pageQuery() throws Exception {
  Pageable pageable = new PageRequest(page-1, rows);
  final String courierNum = model.getCourierNum();
  final String company = model.getCompany();
  final String type = model.getType();
  final Standard standard = model.getStandard();
  
  //相当于DetchedCriteria对象.通过specification封装过滤条件
  Specification<Courier> specification = new Specification<Courier>() {
   
   @Override
   public Predicate toPredicate(Root<Courier> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
    //root:根实体 query:排序,封装条件 CriteriaBuilder:Predicate断言工厂,产生Predicate对象
    //添加过滤条件:添加快递员编号条件
    //p1:实体中属性 p2:条件
    List<Predicate> list = new ArrayList<>();
    if(StringUtils.isNotBlank(courierNum)){
     Predicate p1 = cb.equal(root.get("courierNum").as(String.class), courierNum);
     list.add(p1);
    }
    if(StringUtils.isNotBlank(company)){
     Predicate p2 = cb.equal(root.get("company").as(String.class), company);
     list.add(p2);
    }
    if(StringUtils.isNotBlank(type)){
     Predicate p3 = cb.equal(root.get("type").as(String.class), type);
     list.add(p3);
    }
    //sql : select * from T_COURIER t inner join t_Standard s on t.c_standard_id = s.c_id
//    where s.c_name = '标准一(100公斤)';
    //JPQL: from Courier c inner join c.standard s where s.name = "";
    if(standard!=null && StringUtils.isNotBlank(standard.getName())){
     //返回关联对象
     Join<Object, Object> join = root.join("standard");
     Predicate p4 = cb.equal(join.get("name").as(String.class), standard.getName());
     list.add(p4);
    }
    if(list.size()==0){
     return null;
    }
    //list集合转为数组
    Predicate[] restrictions = new Predicate[list.size()];
    restrictions = list.toArray(restrictions);
    return cb.and(restrictions);
   }
  };
  Page<Courier> page = courierService.findAll(specification, pageable);
  
  Map<String, Object> map = new HashMap<>();
  map.put("total", page.getTotalElements());
  map.put("rows", page.getContent());
  
  //将fixedares集合属性排除掉,不转json
  JsonConfig jsonConfig = new JsonConfig();
  jsonConfig.setExcludes(new String[]{"fixedAreas"});
  
  String json = JSONObject.fromObject(map, jsonConfig).toString();
  
  ServletActionContext.getResponse().setContentType("text/json;charset=utf-8");
  ServletActionContext.getResponse().getWriter().write(json);
  return NONE;
 }
Dao:
public interface CourierDao extends JpaRepository<Courier, Integer>, JpaSpecificationExecutor<Courier> {

}

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助~如果有疑问大家可以留言交流,谢谢大家对的支持!


# jq  # 条件分页  # 离线查询  # 条件分页代替离线  # jQuery插件DataTables分页开发心得体会  # jQuery Ajax 实现分页 kkpager插件实例代码  # 快速掌握jquery分页插件jqPaginator的使用方法  # jQuery Pagination分页插件_动力节点Java学院整理  # 基于jQuery封装的分页组件  # jQuery给表格添加分页效果  # jQuery实现ajax无刷新分页页码控件  # jQuery实现页码跳转式动态数据分页  # 这篇文章  # 谢谢大家  # 不转  # 有疑问  # type  # getCompany  # getType  # getStandard  # standard 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何登录建站主机?访问步骤全解析  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  教学论文网站制作软件有哪些,写论文用什么软件 ?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何在云主机上快速搭建网站?  JS中对数组元素进行增删改移的方法总结  php 三元运算符实例详细介绍  Linux安全能力提升路径_长期防护思维说明【指导】  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  JavaScript如何实现倒计时_时间函数如何精确控制  Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID  Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复  如何为不同团队 ID 动态生成多个独立按钮  ,网页ppt怎么弄成自己的ppt?  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  Linux系统命令中screen命令详解  如何用花生壳三步快速搭建专属网站?  音乐网站服务器如何优化API响应速度?  如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  Laravel如何实现用户密码重置功能?(完整流程代码)  实例解析Array和String方法  深圳网站制作平台,深圳市做网站好的公司有哪些?  如何快速搭建支持数据库操作的智能建站平台?  Laravel Blade模板引擎语法_Laravel Blade布局继承用法  网站建设整体流程解析,建站其实很容易!  海南网站制作公司有哪些,海口网是哪家的?  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  WEB开发之注册页面验证码倒计时代码的实现  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  详解阿里云nginx服务器多站点的配置  如何用美橙互联一键搭建多站合一网站?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  如何挑选优质建站一级代理提升网站排名?  Laravel如何配置和使用缓存?(Redis代码示例)  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  Android Socket接口实现即时通讯实例代码  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  如何在Ubuntu系统下快速搭建WordPress个人网站?  Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】