随侍太监看着林风,生面孔,不免多留了点心,严进忙道:“公公放心,我的人,带着去见皇上。”

月夜见尊心知事情已经闹大,干脆狠下心来,也不管那么多,天之琼矛幻大,直往风魂和许飞琼射去。

激励挣钱的文章

夜色中,完全陌生的面孔,林风试图从那些混乱的记忆中找到关于这个人的影子,可惜一无所获。
看吸血魔兽就是一个代表,一个完全体打五个完全体和一个成熟体完全是无压力,为什么,除了本身的天赋之外就是因为他的实力不断提升。

唐川被叶扬的表情吓得都不敢说话了,只是在那里脸色惨白,身体也是微微有些打颤。

JAVAEE——BOS物流项目06:分页查询、分区导出Excel文件、定区添加、分页问题总结


学习计划

1、分区组合条件分页查询

n 分区分页查询(没有过滤条件)

n 分区分页查询(带有过滤条件)

2、分区导出

n 页面调整

使用POI将数据写到Excel文件

n 通过输出流进行文件下载

3、定区添加

n 定区概念

n 定区添加页面调整

n 服务端实现

4、定区分页查询

n 页面调整

n 服务端实现

n 分页问题总结

 

分区组合条件分页查询

2.1 分区分页查询(没有过滤条件)

页面:WEB-INF/pages/base/subarea.jsp

第一步:修改jsp页面中datagridURL地址

 

 

第二步:在SuareaAction中提供分页查询方法pageQuery

 

 

第三步:修改subarea.hbm.xml

 

 

2.2 分区分页查询(带有过滤条件)

2.2.1 页面调整

 

 

datagrid提供的方法:用于重新发送ajax请求,并且可以提交参数

 

 

 

第一步:提供一个工具方法,可以将指定的form表单中所有的输入项转为json数据,用于参数提交

        //定义一个工具方法,用于将指定的form表单中所有的输入项转为json数据{key:value,key:value}
        $.fn.serializeJson=function(){  
            var serializeObj={};  
            var array=this.serializeArray();
            $(array).each(function(){  
                if(serializeObj[this.name]){  
                    if($.isArray(serializeObj[this.name])){  
                        serializeObj[this.name].push(this.value);  
                    }else{  
                        serializeObj[this.name]=[serializeObj[this.name],this.value];  
                    }  
                }else{  
                    serializeObj[this.name]=this.value;   
                }  
            });  
            return serializeObj;  
        };

 

第二步:为查询窗口中查询按钮绑定事件

 

$("#btn").click(function(){
            //将指定的form表单中所有的输入项转为json数据{key:value,key:value}
            var p = $("#searchForm").serializeJson();
            console.info(p);
            //调用数据表格的load方法,重新发送一次ajax请求,并且提交参数
            $("#grid").datagrid("load",p);
            //关闭查询窗口
            $("#searchWindow").window("close");
        });

 

2.2.2 修改Action中分页查询方法

 

    /**
     * 分页查询
     */
    public String pageQuery(){
        DetachedCriteria dc = pageBean.getDetachedCriteria();
        //动态添加过滤条件
        String addresskey = model.getAddresskey();
        if(StringUtils.isNotBlank(addresskey)){
            //添加过滤条件,根据地址关键字模糊查询
            dc.add(Restrictions.like("addresskey", "%"+addresskey+"%"));
        }
        
        Region region = model.getRegion();
        if(region != null){
            String province = region.getProvince();
            String city = region.getCity();
            String district = region.getDistrict();
            dc.createAlias("region", "r");
            if(StringUtils.isNotBlank(province)){
                //添加过滤条件,根据省份模糊查询-----多表关联查询,使用别名方式实现
                //参数一:分区对象中关联的区域对象属性名称
                //参数二:别名,可以任意
                dc.add(Restrictions.like("r.province", "%"+province+"%"));
            }
            if(StringUtils.isNotBlank(city)){
                //添加过滤条件,根据市模糊查询-----多表关联查询,使用别名方式实现
                //参数一:分区对象中关联的区域对象属性名称
                //参数二:别名,可以任意
                dc.add(Restrictions.like("r.city", "%"+city+"%"));
            }
            if(StringUtils.isNotBlank(district)){
                //添加过滤条件,根据区模糊查询-----多表关联查询,使用别名方式实现
                //参数一:分区对象中关联的区域对象属性名称
                //参数二:别名,可以任意
                dc.add(Restrictions.like("r.district", "%"+district+"%"));
            }
        }
        subareaService.pageQuery(pageBean);
        this.java2Json(pageBean, new String[]{"currentPage","detachedCriteria","pageSize",
                        "decidedzone","subareas"});
        return NONE;
    }

 

修改BaseDao中的分页查询方法

 

 

 

分区数据导出功能

3.1 页面调整

为页面中导出按钮绑定事件

 

 

3.2 服务端实现

第一步:查询所有的分区数据

第二步:使用POI将数据写到Excel文件中

第三步:使用输出流进行文件下载

/**
     * 分区数据导出功能
     * @throws IOException 
     */
    public String exportXls() throws IOException{
        //第一步:查询所有的分区数据
        List<Subarea> list = subareaService.findAll();
        
        //第二步:使用POI将数据写到Excel文件中
        //在内存中创建一个Excel文件
        HSSFWorkbook workbook = new HSSFWorkbook();
        //创建一个标签页
        HSSFSheet sheet = workbook.createSheet("分区数据");
        //创建标题行
        HSSFRow headRow = sheet.createRow(0);
        headRow.createCell(0).setCellValue("分区编号");
        headRow.createCell(1).setCellValue("开始编号");
        headRow.createCell(2).setCellValue("结束编号");
        headRow.createCell(3).setCellValue("位置信息");
        headRow.createCell(4).setCellValue("省市区");
        
        for (Subarea subarea : list) {
            HSSFRow dataRow = sheet.createRow(sheet.getLastRowNum() + 1);
            dataRow.createCell(0).setCellValue(subarea.getId());
            dataRow.createCell(1).setCellValue(subarea.getStartnum());
            dataRow.createCell(2).setCellValue(subarea.getEndnum());
            dataRow.createCell(3).setCellValue(subarea.getPosition());
            dataRow.createCell(4).setCellValue(subarea.getRegion().getName());
        }
        
        //第三步:使用输出流进行文件下载(一个流、两个头)
        
        String filename = "分区数据.xls";
        String contentType = ServletActionContext.getServletContext().getMimeType(filename);
        ServletOutputStream out = ServletActionContext.getResponse().getOutputStream();
        ServletActionContext.getResponse().setContentType(contentType);
        
        //获取客户端浏览器类型
        String agent = ServletActionContext.getRequest().getHeader("User-Agent");
        filename = FileUtils.encodeDownloadFilename(filename, agent);
        ServletActionContext.getResponse().setHeader("content-disposition", "attachment;filename="+filename);
        workbook.write(out);
        return NONE;
    }

 

 

定区添加

定区是进行物流分配的基本单位,可以将取派员、分区、客户信息进行关联,为自动分单提供数据。

页面:WEB-INF/pages/base/decidedzone.jsp

 

 

 

4.1 页面调整

4.1.1 使用combobox展示取派员数据

第一步:修改定区页面中combobox下拉框URL地址

 

 

 

第二步:在StaffAction中提供listajax方法,查询所有未删除的取派员,返回json

/**
     * 查询所有未删除的取派员,返回json
     */
    public String listajax(){
        List<Staff> list = staffService.findListNotDelete();
        this.java2Json(list, new String[]{"decidedzones"});
        return NONE;
    }

 

第三步:在BaseDao中扩展一个通用查询方法

 

 

第四步:在StaffService中扩展方法,查询未删除的取派员

 

 

 

4.1.2 使用datagrid展示分区数据

第一步:修改页面中datagridURL地址

 

第二步:在SubareaAction中提供listajax方法,查询所有未关联到定区的分区,返回json

 

 

第三步:在SubareaService中扩展方法,查询未关联到定区的分区

 

 

 

 

4.1.3 为保存按钮绑定事件提交表单

 

 

问题一:提交的表单中存在多个id参数

 

 

解决方案:将datagridfiledid改为subareaid

 

 

问题二:提交的表单中subareaid参数的值为null

 

 

解决方案:在分区类中提供getSubareaid方法

 

 

4.2 服务端实现

创建定区的ActionServiceDao

 

 

Service代码:

 

 

 

配置struts.xml

 

 

 

定区分页查询

第一步:修改定区jsp页面中datagridURL地址

 

 

第二步:在定区Action中提供pageQuery方法

 

 

第三步:在Decidedzone.hbm.xml中修改,查询定区对象时需要立即加载关联的取派员对象

 

 

分页查询死循环问题

1、页面不需要展示关联数据时

解决:将关联对象属性排除掉

 

2、页面需要展示关联数据时

解决:将关联对象改为立即加载,并且将关联对象中的属性排除

 

当前文章:http://hnhdqp.com/0ch30/84498.html

发布时间:2018-11-20 03:25:39

女博士3个月赚160万 什么软件可以赚钱提现到qq 有什么软件是真能赚钱 什么人每天靠运气赚钱 开网店赚钱吗 现在玩什么手游可以赚钱 边玩边赚网 网上卖什么好赚钱

编辑:开扁秉乙

相关新闻

OLED电视到底值不值得买?

2018-11-20 04:35:08

海拉尔顿逊文化传媒有限公司

胡志强主持传达学习全国“两会”精神

2018-11-20 04:04:09

湖北型辗代理记账有限公司

陈意涵甜美亮相活动现场 俏皮短裙少女力十足

2018-11-20 00:02:48

大理侔钙健身服务中心

热门推荐

  • SpaceX成功完成2018首次火箭发射:涉及美国军方
  • 宝马入局分时租赁 豪车共享将成趋势?
  • 贾跃亭成“老赖”后登上纽约时报,被称为毁誉参半的科技巨头
  • 为防止AirPods容易滑落,国外网友脑洞大开
  • C#爬虫系列(二)——食品安全国家标准数据检索平台
  • 上周热点回顾(11.20-11.26)
  • 《海贼王》886话图解:贝基展示生存之道 路飞用卡塔库栗练级
  • 百公里油耗2.7L 揽胜运动插电混合P400e亮相
  • Blatie Monkey定制印花,北极绒男士纯棉弹力圆领套头卫衣39.9元(30元券)
  • 中国航天八院院长:中国企图在2030年前后实行火星采样
  • 河北新闻网版权所有 本站点信息未经允许不得复制或镜像 法律顾问:微信广告怎么做拆赚钱 看广告赚钱软件排行榜
  • 打码赚钱正规网站 copyright ? 2000 - 2016
  • 新闻热线:0311-67563366 广告热线:0311-67562966 新闻投诉:0311-67562994
  • 冀ICP备 09047539号-1 | 互联网新闻信息服务许可证编号:1312006002
  • 广播电视节目制作经营许可证(冀)字第101号|信息网络传播视听节目许可证0311618号
  • 逆水寒好挣钱吗 冷门生意怎么赚钱十大冷门暴 初中生攒钱小妙招 可信的网上兼职