80

まず、私は Java EE の初心者であり、ASP .NET 開発の経験が豊富です。私はネットを調べましたが、これを見逃す可能性がありますが、バッキング Bean クラスを JSF コンポーネントに接続する方法に関する簡単で直接的なチュートリアルはないようです。

良い例は次のようなものです。現在、メニューバーとしての一連のリンクと一連のフォームがある JSF ページを作成しようとしています。私が計画しているのは、リンクをクリックすると、特定のフォームがレンダリングされることです。

ASP.NET では、要素を簡単に取得して、属性を表示可能に設定できました。JSFでこれを行う簡単な方法(どんな方法でも)があるかどうか疑問に思っています。

フォームは既にページにあるので、特定のリンクをクリックしたときに「render」属性を true に設定するだけです。

4

3 に答える 3

165

はい、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 の解析中にエラーが発生しました: 要素のコンテンツは、整形式の文字データまたはマークアップで構成される必要がありますgtgelelt>>=<=<<>

特定のユースケースに関しては、リンクが以下のようなパラメーターを渡していると仮定しましょう。

<a href="page.xhtml?form=1">link</a>

次に、次のようにフォームを表示できます。

<h:form rendered="#{param.form eq '1'}">

(これは、リクエスト パラメータを表す#{param}を参照する暗黙の EL オブジェクトです)Map

以下も参照してください。

于 2011-02-02T03:41:58.923 に答える
13

以前の投稿に加えて、次のことができます

<h:form rendered="#{!bean.boolvalue}" />
<h:form rendered="#{bean.textvalue == 'value'}" />

JSF2.0

于 2012-10-11T21:24:02.077 に答える