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


为什么只打印最后一个值?
有人可以告诉我在freemarker模板中做正确的方法吗?

最佳答案

看来您正在为列表中的每个元素创建一个新的操作清单。这样,只有最后一个元素才传递给freemarker。
只是把列表opslist = new ArrayList();在for循环的前面

关于java - 将列表传递给freemarker,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8925422/

10-09 05:18