您的位置:首页
项目笔记:创建XML文件和导出功能
2017-09-07 20:51
344 查看
一、创建XML文件:
要生成的XML结构:
我们看下与数据库交互的queryBySoftIdAndType
然后调用该方法即可生成XML
二、导出功能:
注意form表单里需要加个input隐藏域用于传type值
要生成的XML结构:
//创建文件夹 private void createFilePah(String path){ File file = new File(path); if(!file.exists()){ file.mkdirs(); } } @Override public void createXML() { try{ Integer softLicBType = 0; Integer softLicWType = 1;//类型,判断来创建正版还是非正版 //根据Type来获取非正版数据List List<GenuineSerialNumberManagement> softLicB = genuineSerialNumberManagementDao.queryByType(softLicBType); String pathB = ReadConfigFileUtil.getValue(SystemStatics.ROOTDIR) + SystemStatics.PATH_PAW + File.separator+"genuineSerialNumberManagement"; createFilePah(pathB);//判断文件夹路径是否存,不存在就创建文件夹 String XMLPathB =pathB +File.separator + "SoftLicB.xml";//组合非正版文件路径 List<GenuineSerialNumberManagement> softLicW = genuineSerialNumberManagementDao.queryByType(softLicWType); String pathW = ReadConfigFileUtil.getValue(SystemStatics.ROOTDIR) + SystemStatics.PATH_PAW + File.separator+"genuineSerialNumberManagement"; createFilePah(pathW); String XMLPathW = pathW+File.separator + "SoftLicW.xml"; Document documentB = DocumentHelper.createDocument();//创建文件 Element rootB = documentB.addElement("SoftLicB");//创建文件根目录 List<Integer> ss = new ArrayList<Integer>();//声明一个空List用于保存softId,当softId已经写过一次时,就不再写而是写它下级的东西 for (GenuineSerialNumberManagement type : softLicB){ if(!ss.contains(type.getSoftId())){//如果不存在就增加进去 ss.add(type.getSoftId()); Element softWare = rootB.addElement("Software");//二级目录,二级目录里面有SoftId和DisplayName softWare.addAttribute("SoftId", type.getSoftId().toString()); softWare.addAttribute("DisplayName", type.getSoftDisplayName()); //根据type和softId来获取数据list,因为同一个softId下面的东西需要在三级目录上 List<GenuineSerialNumberManagement> softIdB = genuineSerialNumberManagementDao.queryBySoftIdAndType(type.getSoftId(),softLicBType); for(GenuineSerialNumberManagement soft : softIdB){ Element license = softWare.addElement("license");//三级目录,三级目录里面有Version和value license.addAttribute("Version", soft.getVersion()); license.addAttribute("value", soft.getSerialNumber()); } }else{ continue; } } XMLUtil.writeXml(documentB, XMLPathB);//在路径下写入文件 Document documentW = DocumentHelper.createDocument(); Element rootW = documentW.addElement("SoftLicW"); List<Integer> ww = new ArrayList<Integer>(); for(GenuineSerialNumberManagement type : softLicW){ if(!ww.contains(type.getSoftId())){ ww.add(type.getSoftId()); Element softWare = rootW.addElement("Software"); softWare.addAttribute("SoftId", type.getSoftId().toString()); softWare.addAttribute("DisplayName", type.getSoftDisplayName()); List<GenuineSerialNumberManagement> softIdW = genuineSerialNumberManagementDao.queryBySoftIdAndType(type.getSoftId(), softLicWType); for(GenuineSerialNumberManagement soft : softIdW){ Element license = softWare.addElement("license"); license.addAttribute("Version", soft.getVersion()); license.addAttribute("value", soft.getSerialNumber()); } }else{ continue; } } XMLUtil.writeXml(documentW, XMLPathW); }catch(Exception e){ e.printStackTrace(); } catch (Throwable e) { e.printStackTrace(); } }
我们看下与数据库交互的queryBySoftIdAndType
@SuppressWarnings("unchecked") @Override public List<GenuineSerialNumberManagement> queryBySoftIdAndType(Integer softId,Integer type) { return this.getSession().createQuery(" FROM " + this.clazz.getName() + " this WHERE this.softId =(:softId) AND this.type =(:type)") .setParameter("softId", softId) .setParameter("type", type) .list(); }
然后调用该方法即可生成XML
//自动生成xml genuineSerialNumberManagementService.createXML();
二、导出功能:
<form id="export_serialNumber" action="" style="padding: 0; margin: 0;" method="post" target="_blank"> <input type="hidden" id="exportType" name="genuineSerialNumberManagement.type" value="" /> </form>
//导出规则库 function exportSerialNumber(){ var currentType = $("input[name='serialNumber']:checked").val(); if (currentType == "") { showMsg("系统提示", "请选择要导出的类型!", false); return; } if ($.checkSession()) { var $form = $("#export_serialNumber"); var action = ""; try { $("#exportType").val(currentType); action = $form.attr("action"); $form.attr("action", "${basePath}/genuineSerialNumberManagementAction_export.do").submit(); } finally { $form.attr("action", action); } } }
注意form表单里需要加个input隐藏域用于传type值
//导出规则库 public String export() { log.info("【正版序列号管理--导出规则库:开始】"); try { if (genuineSerialNumberManagement != null) { String filePath = ReadConfigFileUtil.getValue(SystemStatics.ROOTDIR) + SystemStatics.PATH_PAW + File.separator+"genuineSerialNumberManagement\\"; // 为下载 做 准备 String fileName = null; if(genuineSerialNumberManagement.getType()!=null && genuineSerialNumberManagement.getType() == 0){ fileName = "SoftLicB.xml"; } if(genuineSerialNumberManagement.getType()!=null && genuineSerialNumberManagement.getType() == 1){ fileName = "SoftLicW.xml"; } ActionContext.getContext().put("fileName", fileName); ActionContext.getContext().put("filePath", filePath + fileName); } log.info("【正版序列号管理--导出规则库:结束】"); return RETURN_DOWNLOADUI; } catch (Exception e) { log.error("【正版序列号管理--导出规则库:失败】", e); return null; } }
相关文章推荐
- 视频编辑器-MovieMator简洁使用-功能和快速入门-创建项目、导入和导出
- 项目笔记:导出XML和导出全部XML功能
- 项目笔记:导出Excel功能
- 项目笔记:导出Excel功能分sheet页插入数据
- .NET项目笔记——使用NPOI读取Excel导入数据和导出Excel的功能
- Maven学习笔记(三)—— 使用Maven自带的功能创建Java和JavaWeb项目
- 项目笔记:导出Excel功能设置导出数据样式
- maven学习笔记--maven项目创建
- Intellij16创建Spring-Mybatis项目创(填)建(坑)记录,解决IDEA下找不到xml文件的问题
- 公司项目笔记-导出excel
- iOS学习笔记55- iOS项目集成ShareSDK实现第三方登录、分享、关注等功能。
- 【微信小程序】开发者工具下载安装及创建项目功能预览
- vue.js学习笔记之安装以及项目的创建和运行
- 使用标准导出模板向导创建自定义项目模板
- C++学习笔记1C++开发环境搭建创建第一个项目Hello word!
- Android创建NDK项目(笔记)
- 微软企业库4.1学习笔记(二)各功能之间的依赖关系以及对象创建
- javaweb项目基于poi的excel导出功能实现
- #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
- 微软企业库4.1学习笔记(二)各功能之间的依赖关系以及对象创建