4

var属性のプロパティを参照する次のEL式があります。

empty _item.addressLine1

addressLine1はAddressBeanの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>
    ....

問題は、addressLine1が空の文字列であるかどうかに関係なく、式が常にfalseを返すことです。これを確認するかのように、EclipseのfaceletValidatorは次の警告を生成します。

この空の式は常にfalseと評価されます。文字列、マップ、配列、およびコレクションのみが、空の演算子に対して意味のある値を持ちます

しかし、これを修正する方法がわかりません。jboss-el-api_2.2_spec-1.0.0.FinalでJBossAS7.1を実行しています

4

2 に答える 2

4

これまでのところ、コードは正常に見えます。この警告は無効です。気になる場合は、EclipseでEL検証をオフにしてください。

具体的な問題に関しては、おそらく#{_item.addressLine1}それ自体は本当に空です。これが空でないことを確認する必要があります。

于 2012-10-23T19:55:40.583 に答える
2

この特定の警告のみを無視することもできます:Web-> JavaServer Faces Tools-> Validator

  • 定数畳み込みと未使用のコード(セクション)。空の演算子は、タイプ(無視)で常にfalseに解決されます。
于 2014-10-29T11:06:16.860 に答える