Передача списка в freemarker - PullRequest
       5

Передача списка в freemarker

1 голос
/ 19 января 2012

Java-файл

for(..){
 java.util.List opslist = new ArrayList();
 opr.setOperationName(operation.getName()); //gets operation name (iterate and get n no of names) sets it to opr
 System.out.println(opr.getOperationName());//gets all the set values n prints it(jus to chack that all values r getting set)
 opslist.add(opr.getOperationName());//putting those valies into a list
 datamodel.put("opslist", opslist.toArray(new String[]{}));//putting it into a hash map with key as opslist and value as opslist object
}           

Шаблон Freemarker

<#list opslist as x> //read the values from the key "opslist" (gets only one value)
 ${x} //print values one by one(it prints only one value) </#list>

Вывод файла Java является

get
set
value
usage

вывод шаблона Freemarket равен

usage

Почему печатается только последнее значение?
Может кто-нибудь сказать мне, как правильно делать внутришаблон бесплатного маркера?

Ответы [ 2 ]

1 голос
/ 19 января 2012

Это потому, что вы создаете новый список на каждой итерации цикла for.Кроме того, вы добавляете 4 списка для одного и того же ключа в карту данных.Это должно быть исправлено, как показано ниже:

    java.util.List opslist = new ArrayList();

    for(..){
        opr.setOperationName(operation.getName()); //gets operation name (iterate and get n no of names) sets it to opr

        System.out.println(opr.getOperationName());//gets all the set values n prints it(jus to chack that all values r getting set)

        opslist.add(opr.getOperationName());//putting those valies into a list
    }     

    datamodel.put("opslist", opslist.toArray(new String[]{}));//putting it into a hash map with key as opslist and value as opslist object
1 голос
/ 19 января 2012

похоже, что вы создаете новый opslist для каждого элемента в вашем списке.таким образом, только последний элемент передается freemarker.просто поместите List opslist = new ArrayList ();перед петлей для

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