JAVA编码(15)——使用FRAMEMARK创建XML

首先需要导入freemarker-2.3.19.jar包

然后穿件一个xml文件模板

 

再次:

Map root= new HashMap();
    for (int i = 0; i < listborrownum.size(); i++) {//生成借的凭证
   voucherborrow = new VoucherEntrySchema();
   voucherborrow.setId(i+1);
   voucherborrow.setPayDate(payDate);
   voucherborrow.setObjectinfo(listborrownum.get(i).getObjectinfo());
   voucherborrow.setPayMoney1(listborrownum.get(i).getPayMoney1());
   listborrow.add(voucherborrow);
    }
    for (int i = 0; i < listcreditnum.size(); i++) {//生成贷的凭证对象
    vouchercredit = new VoucherEntrySchema();
    vouchercredit.setId(i+2);
    vouchercredit.setPayDate(payDate);
    vouchercredit.setObjectinfo(listcreditnum.get(i).getObjectinfo());
    vouchercredit.setPayMoney2(listcreditnum.get(i).getPayMoney2());
    listcredit.add(vouchercredit);
    }
    root.put("currentMills", "ZJ"+System.currentTimeMillis());//当前时间的毫秒数
    root.put("currentDate", currentDate);//当前的日期
    root.put("number", number);//生成 entry 的总记录数
    root.put("entryborrow", listborrow);
    root.put("entrycredit", listcredit);
   
    Configuration config = new Configuration();
    URL url=Thread.currentThread().getContextClassLoader().getResource("CreateVoucher.ft");
    temp=url.getFile();
    temp=temp.substring(1,temp.length());
    temp=temp.substring(0,temp.lastIndexOf("/"));
    config.setDirectoryForTemplateLoading(new File(temp));
    config.setObjectWrapper(new DefaultObjectWrapper());
    Template t = config.getTemplate("CreateVoucher.ft");
    String currentTime = current.replaceAll("-","");
    InputStream in = null;
    FileOutputStream fos = null;
    File file = null;
    String voucher1 = LoadLocationProperties.getPropertiesValue("/location.properties", "voucher1");
    try {
     System.out.println(voucher1);
     file=new File(voucher1+"999999999_"+currentTime+"_LNAE_"+System.currentTimeMillis()+"_"+(Math.random()+"").substring(2)+".xml");
     file.getParentFile().mkdirs();
     if(!file.exists()){
      file.createNewFile();
     }
     fos = new FileOutputStream(file);
     PrintWriter writer = new PrintWriter(fos);
     t.process(root, writer);
     listborrow.remove(voucherborrow);
     listcredit.remove(vouchercredit);
    } catch (Exception e) {
     e.printStackTrace();
    }finally{
     fos.flush();
     fos.close();

  

posted @ 2015-04-05 19:13  xu_shuyi  阅读(231)  评论(0编辑  收藏  举报