(项目管理)WEB模块物流项目五

上传人:管****问 文档编号:127422531 上传时间:2020-04-02 格式:DOC 页数:33 大小:1.27MB
返回 下载 相关 举报
(项目管理)WEB模块物流项目五_第1页
第1页 / 共33页
(项目管理)WEB模块物流项目五_第2页
第2页 / 共33页
(项目管理)WEB模块物流项目五_第3页
第3页 / 共33页
(项目管理)WEB模块物流项目五_第4页
第4页 / 共33页
(项目管理)WEB模块物流项目五_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《(项目管理)WEB模块物流项目五》由会员分享,可在线阅读,更多相关《(项目管理)WEB模块物流项目五(33页珍藏版)》请在金锄头文库上搜索。

1、BOS 物流管理系统 第五天 分区管理 今天内容安排: 1、 分区 添加 分区 是要 关联区域信息 (多表关联插入 )2、 分区 列表查询 多条件组合分页查询 (jquery easyui datagrid 如何设置条件、 spring data 组合条件查询 Specification 接口规范 )3、 分区查询结果导出 (POI 生成Excel 进行下载 )1. 任务一: 分区添加 业务: 分区是对区域细分,为后续指定 配送区域,提供基础数据 导入功能,实现类似 区域导入, 作为作业 完成 1.1. jquery easui combobox 插件,实现下拉列表 传统列表做法: 1、 页面

2、加载后,自动发起ajax请求 ,获取区域的数据 2、 在回调函数,遍历每个区域数据,显示在 选择区域下拉框 (使用jquery dom 操作 )1.1.1. 使用easyui combobox 制作下拉列表 查询文档:用法一: 对已经存在 (含有数据),添加class=”easyui-combobox” 用法二: 对 添加 class=”easyui-combobox” 此时,设置url属性、 valueField属性、textField属性 第一步: 修改页面 使用 combobox subarea.jsp 页面在页面加载后,自动向 region_ajaxlist.action发起请求,加载

3、json数据 第二步: 在RegionAction 添加 ajaxlist 查询方法 业务层 测试代码 错误: 信息 延迟加载解决方案第三步:页面要显示 name属性,region转换为json没有 name属性 效果: ok 回显区域 省市区信息 !1.1.2. 使用easyui combobox的自动补全效果 modestring定义了如何加载列表数据当文本改变。设置为“remote“如果下拉列表框从服务器加载。当设置为“remot“模式下,用户类型将被发送的http请求参数命名为“q”服务器来检索新数据。local将combobox的 mode属性,设置为remote ,远程补全 当修改

4、下拉框内容,自动向服务器发送请求参数 q 服务器获取q参数,根据q值查询,转换json返回 修改 RegionAction的 ajaxlist 查询方法 Action ServiceDAO 测试: ok 自动补全下拉框显示区域信息完成!1.2. 添加分区服务器实现 1: 将分区实体类 主键 修改 assigend 实体类修改:完善form参数 为保存按钮save 添加click事件 ,对form校验 关联选择区域,combobox 设置为 required Save按钮的click事件 BaseAction 注入业务层接口编写SubareaAction 编写SubareaService DAO

5、 接口 修改Subarea实体 ,修改为默认主键策略 添加分区业务完成!学生作业: 先完成 无条件分页查询!1.3. 无条件分页查询1: 入口 subarea.jsp 2:分页查询 父类获取即可3:业务层实现测试无条件分业查询ok 测试 结果 延迟加载错误 定区信息 分区查询不需要该数据 所有排除区域信息 页面需要 所以不能排斥 解决json 插件序列化 session 生命周期问题:1: 立刻查询 配置标签 (不推荐)2: 代码 Hiberante.initilize()延迟的对象立刻查询 (局部操作) 3: (hibernate)session spring data jpa (Entit

6、yManager)生命周期延长到web 层 -默认所有事务 只读! 事务管理器一定切到所有业务事务管理采用第二种: (灵活 session 生命周期没有延长到web ) 业务层代码 修改 立刻查询 延迟加载 region数据 配置web.xml 引入 EntityManagerInViewFilter 分区无条件分页查询完成!2. 条件分页查询2.1. 客户端easyui 框架条件分页查询分析说明2.2. 服务器 spring data如何分页条件查询(查询官方文档或者第三方实例)Spring data 学习 多条件分页复杂查询 参照 网址: http:/ Spring data 复杂查询 推

7、荐 Specification 接口! spring data 采用分页条件查询 类似 hibenate criteria 查询!多表连接2:配置好Model及其关系后,就可以在构建Specification的时候使用了,示例如下:Specification spec = new Specification() public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) Predicate p1 = cb.like(root.get(name).as(String.class), %+um.g

8、etName()+%);Predicate p2 = cb.equal(root.get(uuid).as(Integer.class), um.getUuid();Predicate p3 = cb.gt(root.get(age).as(Integer.class), um.getAge();SetJoin depJoin =root.join(root.getModel().getSet(setDep,DepModel.class) , JoinType.LEFT);Predicate p4 = cb.equal(depJoin.get(name).as(String.class), d

9、dd);/把Predicate应用到CriteriaQuery去,因为还可以给CriteriaQuery添加其他的功能,比如排序、分组啥的query.where(cb.and(cb.and(p3,cb.or(p1,p2),p4);/添加分组的功能query.orderBy(cb.desc(root.get(uuid).as(Integer.class);return query.getRestriction(); 2.3. 分析jquery easyui datagrid如何实现条件分页 在查询窗口输入条件 2.4. 完善查询form,将查询条件转换为json Datagrid 提供条件查询方

10、法第一步: 完善查询form表单 第二步: 用户点击查询按钮,将查询form数据,转换为json Jquery API 提供两个方法 serialize() 将form参数,转换http协议参数格式 key=value&key=value serializeArray() 将form参数转换为数组 需要firstname:hello, Lastname : world 通过对jquery 对象函数扩展实现 $.fn.serializeJson=function() var serializeObj=; var array=this.serializeArray(); var str=this.

11、serialize(); $(array).each(function() if(serializeObjthis.name) if($.isArray(serializeObjthis.name) serializeObjthis.name.push(this.value); else serializeObjthis.name=serializeObjthis.name,this.value; else serializeObjthis.name=this.value; ); return serializeObj; ;客户端 条件分页 查询携带条件参数 完成!客户端分页条件查询完成!2.

12、5. 服务器端实现分区条件组合分页查询 修改 datagrid的url Spring Data 支持类似QBC 动态生成SQL 查询 !内部支持,提供 JpaSpecificationExecutor 接口, DAO 继承这个接口 JpaSpecificationExecutor 内部提供 条件、分页查询方法 Service代码 目标: 将客户端条件封装到 Specification对象中即可Action 代码 spring data 分页查询 关键字条件的添加区域条件的添加定区编码的添加将所有添加 使用and 连接 测试多条件查询 ok !Action(value = subAreaActi

13、on_pageQuery)public String pageQuery() try / model 瞬时态 分页 条件查询 ./ molde 数据 封装 Specification 实现类中/ Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb); 方法 将请求参数 封装 SpecificationSpecification spec = new Specification() public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) / 将请求参数 model 数据 封装 Predicate/ 1: root 表示 Subarea from

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号