我有以下 EL 表达式,它引用了 var 属性的属性:
empty _item.addressLine1
addressLine1
是 Address bean 上的 String 属性,可通过personBean.person.addresses
返回Set<Address>
.
这是上下文中的 EL 表达式:
<h:dataTable id="personBeanPersonAddresses" styleClass="data-table" value="#{forgeview:asList(personBean.person.addresses)}" var="_item">
<h:column>
<f:facet name="header">
<h:outputText value="Address Line 1"/>
</f:facet>
<h:link outcome="/address/view">
<f:param name="id" value="#{_item.id}"/>
<h:panelGroup rendered="#{!empty _item.addressLine1}">
<h:outputText id="itemAddressLine1" value="#{_item.addressLine1}"/><br/>
</h:panelGroup>
</h:link>
</h:column>
....
问题是表达式总是返回 false,无论 addressLine1 是否为空字符串。好像要确认这一点,Eclipse 中的 facelet Validator 会产生以下警告:
这个空表达式总是计算为假。对于空运算符,只有字符串、映射、数组和集合具有有意义的值
但我不确定如何解决这个问题。我正在使用 jboss-el-api_2.2_spec-1.0.0.Final 运行 JBoss AS 7.1