質問

ポートレットおよびJPSの開発に使用されるため、ジレンマがあります。

task:リストが空でない場合にのみ< h:dataTable> を表示します

JSFページに< c:if> タグを提供することは可能ですか?

役に立ちましたか?

解決

はい、JSFページにJSTLタグを追加できます。ただし、あなたの場合、次のことを行うことができます。

<h:dataTable value="#{myBean.list}"... rendered="#{myBean.displayTable}">
    ...
</h:dataTable>

myBean で次のメソッドを使用:

public boolean isDisplayTable() {
    return list != null && list.size() > 0;
}

それを試すこともできます(動作するかどうかはわかりません):

<!-- Idea from Colin Gislason -->
<h:dataTable value="#{myBean.list}"... rendered="#{not empty myBean.list}">
    ...
</h:dataTable>

<h:dataTable value="#{myBean.list}"... rendered="#{not myBean.list.empty}">
    ...
</h:dataTable>

EL式で not キーワードの代わりにを使用できることに注意してください(ガイドここのEL式について)、 rendered =&quot;#{!empty myBean.list }&quot;

他のヒント

&lt; c:if&gt; (およびその他のJSTLタグ)は、ほとんどの場合、JSFで使用できます。ただし、&lt; h:dataTable&gt; など、コレクションを反復処理するコンポーネント内では使用できません。しかし、あなたの場合、あなたは&lt; c:if&gt; を外部にしたいので、それは可能です。ただし、romaintazが指摘したように、 rendered 属性を使用することをお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top