Проблема с FileWriter на несколько файлов в Java - PullRequest
1 голос
/ 06 декабря 2010

Я использую java с freemarker для генерации HTML-файлов через FTL (файл шаблона) и XML.Я получил результат в нескольких файлах, но каждый файл содержит весь результат.Я хочу, чтобы каждый файл содержал свой собственный результат.Чтобы получить более подробную информацию, взгляните на эту часть моего Java-кода: (решение должно быть таким простым, но я не могу его найти)

static void freemarkerDo(Map datamodel, String template) throws Exception{
  try {
      File file = new File("Avis.xml");
      DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
      DocumentBuilder db = dbf.newDocumentBuilder();
      Document doc = db.parse(file);
      doc.getDocumentElement().normalize();
      NodeList nodeLst = doc.getElementsByTagName("Avis");

      Configuration cfg = new Configuration();

      Template tpl = cfg.getTemplate(template);



      for (int s = 0; s < nodeLst.getLength(); s++) {

        Node fstNode = nodeLst.item(s);

        if (fstNode.getNodeType() == Node.ELEMENT_NODE) {

            Element fstElmnt = (Element) fstNode;
            NodeList flNmElmntLst = fstElmnt.getElementsByTagName("Filename");
            Element flNmElmnt = (Element) flNmElmntLst.item(0);
            NodeList flNm = flNmElmnt.getChildNodes();
            FileWriter writer = new FileWriter(((Node) flNm.item(0)).getNodeValue()+".html");

            try {
                tpl.process(datamodel, writer);
                }
            finally{
                writer.close();
                    }
                                                        }



      }
      } catch (Exception e) {
        e.printStackTrace();
      }

}

Спасибо заваша помощь.

1 Ответ

1 голос
/ 06 декабря 2010

Я не знаю, что делает этот метод или где установлена ​​модель данных, однако мне кажется, что вы передаете всю модель данных, так что это объясняет, почему в каждом файле есть вся модель данных.

tpl.process(datamodel, writer); // does what, with what?

Что вы видите, когда отлаживаете код?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...