2013-04-15 30 views
2

我有一个Object带有一个字符串向量作为它在ftl中的一个属性。我不得不使用if条件和输入specfic块只有当载体含有如何在freemarker中遍历一个向量?

我曾尝试使用类似

<#if (aObject.bVector.contains(dVariable))> 

条件的一些动态变量(在FTL可用),但这给出了一个无效的参考异常bVector在java层中填充数据,但我不确定此方法是否可以使用。

回答

2

您可以使用

<#if aObject.bVector?seq_contains('value')> 

注比freemarker的不能直接访问的成员:你需要有公共存取。

aObject类也需要标记为公共。

来源:FreeMarker Manual

编辑:确保aObject.bVector不为空。

+0

我尝试使用上面,但我得到的堆栈跟踪相同的异常 freemarker.core.InvalidReferenceException:在表达aObject.bVector上线138不确定,列23改造/存款/ lastUsedOptions.ftl。 –

+0

你能否发布你的aObject类定义? – Nicolas

+0

public class aObject implements SQLDataType {0}私有字符串abc; private String def; public矢量 bVector; } public Vector getbVector() { return this.bVector; } public void setbVector(Vector bVector)this.bVector = bVector; } **和其他获取和设置器 –

1

它应该像这样<#if aObject.bVector?seq_contains(dVariable?string)></#if>