【发布时间】:2012-09-15 22:17:18
【问题描述】:
假设我的 java 代码有 List<String> listS =null,我将它传递给我的模板文件。
现在我想确定if list has some data then only do something。
我试过了
<#if listS = null>
AND
<#if !listS>
AND
<#if listS?size=0>
但这些似乎都不起作用。我的java代码有一些逻辑;通过它,如果某些条件为真,那么我 new 这个 listS 并填充它。
因此我需要知道listS 在我的模板文件中是否已填充或仅为空。
我该怎么做?谢谢。
编辑:另外,我有一个结构列表,每个都包含这个列表,(填充与否是一个不同的问题),并且我正在传递整个结构列表,因此将布尔值与模板文件一起传递我的结构列表是不可能的,因为我必须在每个列表中遍历,并且我想在模板文件本身中进行遍历。
编辑 2:对于那些知道什么是 Java null 的人,FreeMarker 2.3.x 将它们视为缺失值。简单地说,模板语言不知道 null 的概念。例如,如果您有一个具有 maidenName 属性的 bean,并且该属性的值为 null,那么就模板而言,这与根本没有此类属性相同(假设您没有将 FreeMarker 配置为使用一些极端的对象包装器,即)。返回 null 的方法调用的结果也被视为缺失变量(再次假设您使用一些常用的对象包装器)。在常见问题解答中查看更多信息。
但我仍然没有得到如何让它工作的答案,如果可以的话。
【问题讨论】:
-
我建议始终初始化列表并将您的逻辑基于列表的大小是否大于 0。尽管如果您想使用这种方式,那么我不会帮助,因为不幸的是我以前没有使用过 freemarker。
标签: java null freemarker