Bonjour,
j'ai repris un exemple trouvé sur le net, malgré tout freemarker ne récupère pas les valeurs de mon objet.
Voici mon code :
Map
Configuration
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Map<String, List<Person>> root = new LinkedHashMap<String, List<Person>>(); List<Person> personList = new LinkedList<Person>(); personList.add(new Person("John", "Smith")); personList.add(new Person("Johnny", "Parker")); root.put("personList", personList);
Template
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 cfg.setDirectoryForTemplateLoading(new File(templatePath)); cfg.setTemplateExceptionHandler(new AuthorisationsExceptionHandler()); cfg.setObjectWrapper(new BeansWrapper()); template = cfg.getTemplate(templateName); File mergedFile = new File(targetPath+targetFile); Writer out = new BufferedWriter(new FileWriter(mergedFile)); template.process(root, out); out.flush(); out.close();
J'ai aussi essayé avec un type LinkedHashMap<String,Person> pour personList pour vérifier si c'était un problème de parcourir une liste de clés, mais le résultat est le même.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <#list personList as x> ${x.lastName};${x.firstName} </#list>
Exception :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Expected collection or sequence. personList evaluated instead to freemarker.ext.beans.MapModel on line 1, column 8 in dataTemplate1.ftl. The problematic instruction: ---------- ==> list personList as x [on line 1, column 1 in dataTemplate1.ftl] ----------
Partager