< c:if> JSFページのタグ
-
10-07-2019 - |
質問
ポートレットおよび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
属性を使用することをお勧めします。
所属していません StackOverflow