はい、rendered
属性を使用します。
<h:form rendered="#{some boolean condition}">
通常は、モデルがコンポーネントを取得して操作できるようにするのではなく、モデルに関連付けます。
例えば
<h:form rendered="#{bean.booleanValue}" />
<h:form rendered="#{bean.intValue gt 10}" />
<h:form rendered="#{bean.objectValue eq null}" />
<h:form rendered="#{bean.stringValue ne 'someValue'}" />
<h:form rendered="#{not empty bean.collectionValue}" />
<h:form rendered="#{not bean.booleanValue and bean.intValue ne 0}" />
<h:form rendered="#{bean.enumValue eq 'ONE' or bean.enumValue eq 'TWO'}" />
, , の代わりに, ,などのキーワード ベースのEL演算子の重要性に注意してください。これは、XML の予約文字です。この関連する Q&A も参照してください: XHTML の解析中にエラーが発生しました: 要素のコンテンツは、整形式の文字データまたはマークアップで構成される必要があります。gt
ge
le
lt
>
>=
<=
<
<
>
特定のユースケースに関しては、リンクが以下のようなパラメーターを渡していると仮定しましょう。
<a href="page.xhtml?form=1">link</a>
次に、次のようにフォームを表示できます。
<h:form rendered="#{param.form eq '1'}">
(これは、リクエスト パラメータを表す#{param}
を参照する暗黙の EL オブジェクトです)Map
以下も参照してください。