BOS项目及知识点总结 _02

来源:互联网 发布:picplaypost同类软件 编辑:程序博客网 时间:2024/06/07 18:44

组合条件分页查询

<script type="text/javascript">              $(function(){                  $("#searchBtn").click(function(){//                    组装数据                      var formData = $("#searchForm").serializeJSON();                       //封装表单,                         **$("#grid").datagrid('load',formData);**                  })              })            </script>

后端代码,dao层接口需要继承 JpaSpecificationExecutor

@Action("courierAction_findByPage")    public void findByPage(){//      条件查询//      model.getCourierNum();//工号//      model.getStandard().getName();  收派标准的名称//      model.getType(); //类型//      model.getCompany()  //公司//      Specification  相当于 DetachedCriteria        DetachedCriteria dc = DetachedCriteria.forClass(Courier.class);        if(StringUtils.isNotBlank(model.getCourierNum())){            dc.add(Restrictions.like("courierNum", model.getCourierNum()));        }        Specification<Courier>  specification = new Specification<Courier>() {            @Override            public Predicate toPredicate(Root<Courier> root, CriteriaQuery<?> query, CriteriaBuilder cb) {//              root 查询对象的主体//              cb  相当于 Restrictions                //工号                List<Predicate> list = new ArrayList<Predicate>();//把组装的条件对象先存放到这个集合中                if(StringUtils.isNotBlank(model.getCourierNum())){                    Predicate predicate1 = cb.like(root.get("courierNum").as(String.class), "%"+model.getCourierNum()+"%");//                  return predicate;                    list.add(predicate1);                }//              收派标准的名称                if(model.getStandard()!=null&&StringUtils.isNotBlank(model.getStandard().getName())){//                  需要关联收派标准对象 select * from Courier c inner join standard s                     Join<Object, Object> join = root.join("standard");                       Predicate predicate2 = cb.like(join.get("name").as(String.class), "%"+model.getStandard().getName()+"%");//                  return predicate2;                    list.add(predicate2);                }                //类型                if(StringUtils.isNotBlank(model.getType())){                    Predicate predicate3 = cb.like(root.get("type").as(String.class), "%"+model.getType()+"%");//                  return predicate3;                    list.add(predicate3);                }                //公司                if(StringUtils.isNotBlank(model.getCompany())){                    Predicate predicate4 = cb.like(root.get("company").as(String.class), "%"+model.getCompany()+"%");//                  return predicate4;                    list.add(predicate4);                }//              判断list的size是否为0,如果为0直接return null                if(list.size()==0){                    return null;                }//              list转成数组再转成Predicate对象                Predicate[] predicates = new Predicate[list.size()];                predicates = list.toArray(predicates);                return cb.and(predicates);            }        };        Pageable pageable = new  PageRequest(page-1, rows);        Page page = service.findByPage(specification,pageable);//      拼装datagrid分页时需要的数据格式//      {"total":100,"rows":[{},{},{}]}        Map<String,Object> map = new HashMap<String,Object>();        map.put("total", page.getTotalElements());        map.put("rows", page.getContent());        JsonConfig jsonConfig = new JsonConfig();//      设置在转json时排除的字段        jsonConfig.setExcludes(new String[]{"fixedAreas"});        String string = JSONObject.fromObject(map, jsonConfig).toString();        HttpServletResponse response = ServletActionContext.getResponse();        response.setContentType("application/json;charset=utf-8");        try {            response.getWriter().write(string);        } catch (IOException e) {            e.printStackTrace();        }           }

一键上传

jQuery OCUpload一键上传插件
前端代码

 $("#button-import").upload({                      action:'../../areaAction_importXls.action',                      //名字要和后端属性name名一样                      name:'myFile'                  })

action层代码

private File myFile;    public File getMyFile() {        return myFile;    }    public void setMyFile(File myFile) {        this.myFile = myFile;    }@Action("areaAction_importXls")    public void importXls(){        System.out.println(myFile);    }

service层

@Override    public void importXls(FileInputStream fileInputStream) {//      1、获取workbook对象        try {        HSSFWorkbook book = new HSSFWorkbook(fileInputStream);        HSSFSheet sheet = book.getSheetAt(0);        int lastRowNum = sheet.getLastRowNum();        Area area  = null;        List<Area> list = new ArrayList<Area>();        for (int i = 1; i <= lastRowNum; i++) {          HSSFRow row = sheet.getRow(i);          String id = row.getCell(0).getStringCellValue();          String province = row.getCell(1).getStringCellValue();          String city = row.getCell(2).getStringCellValue();          String district = row.getCell(3).getStringCellValue();          String postcode = row.getCell(4).getStringCellValue();          area = new Area();          area.setId(id);          area.setProvince(province);          area.setCity(city);          area.setDistrict(district);          area.setPostcode(postcode);          province = province.substring(0, province.length()-1);          city = city.substring(0, city.length()-1);          district = district.substring(0, district.length()-1);          //          城市编码          String citycode = PinYin4jUtils.hanziToPinyin(city,"");          area.setCitycode(citycode);            //          简码          String[] headByString = PinYin4jUtils.getHeadByString(province+city+district);          String shortcode = StringUtils.join(headByString);          area.setShortcode(shortcode);             list.add(area);        }        dao.save(list);        }         catch (IOException e) {            e.printStackTrace();        }    }