2017-05-16 2 views
1

Quel est le problème avec le modèle suivant?Impossible de lister un hachage sur les paires clé-valeur dans Freemarker

package ${packageName} 

public interface ${entityName} { 

<#list methods as methodName, map > 
public void ${methodName}(${map}) ; 
</#list> 

} 

qui donne sur la version 2.3.23:

freemarker.core.ParseException: Syntax error in template "javaclass.ftl" in line 5, column 29: 
Encountered ",", but was expecting: 
    ">" 
    at freemarker.core.FMParser.generateParseException(FMParser.java:5251) 
    at freemarker.core.FMParser.jj_consume_token(FMParser.java:5122) 
    at freemarker.core.FMParser.List(FMParser.java:1431) 
    at freemarker.core.FMParser.FreemarkerDirective(FMParser.java:2827) 
    at freemarker.core.FMParser.MixedContent(FMParser.java:3081) 
    at freemarker.core.FMParser.OptionalBlock(FMParser.java:3253) 
    at freemarker.core.FMParser.Root(FMParser.java:3432) 
    at freemarker.template.Template.<init>(Template.java:208) 
    at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:495) 

La documentation gives the following example pour une structure de hachage

Listing est hash très similaire, mais vous devez fournir deux variables noms après l'as; un pour la clé de hachage, et un autre pour la valeur associée . En supposant que les produits est { "pomme": 5, "banane": 10, "kiwi": 15}:

<#list products as name, price> 
    <p>${name}: ${price} 
</#list> 

    <p>apple: 5 
    <p>banan: 10 
    <p>kiwi: 15 

Notez que mon exemple est avant de soumettre le contenu.

Répondre

1

Cela est attendu puisque la valeur-clé de la liste a été ajoutée en 2.3.25.

http://freemarker.org/docs/ref_directive_list.html#ref.directive.list

... et la liste des paires clé-valeur d'un hachage (depuis 2.3.25):

<#list hash as key, value> 
    Part repeated for each key-value pair 
</#list> 

Donc, mise à niveau si vous pouvez ou réécrire votre liste.

Voir aussi:

+0

Est-2.3.25 encore l'incubation? C'est de la documentation publiée, mais j'ai choisi la version non-incubante sur maven !? https://mvnrepository.com/artifact/org.freemarker/freemarker –

+0

Vous pouvez choisir la dernière version. "Bien que le statut d'incubation ne reflète pas nécessairement l'exhaustivité ou la stabilité du code, il indique que le projet n'a pas encore été entièrement approuvé par la FAA." http://freemarker.org/ –

+0

Merci pour la clarification, c'était la source de ma confusion. –