問題タブ [backing-beans]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1376 参照

jsf - 別の h:selectOneMenu 値に応じて h:selectOneMenu をロードする

2 つの h:selectOneMenu (1: 国、2: 都市) があります。ajaxを使用して、selectOneMenuの都市で選択した1つの国からすべての都市をロードする必要があります。国 selectOneMenu の値を変更すると、私の都市 selectOneMenu は countryBean.selectedCountry から null 値を取得します。

これは、都市を見つける方法です。

countryBean.selectedCountry は常に null であるため、NullPointerException が発生しています。これを行う正しい方法は何ですか?

0 投票する
0 に答える
446 参照

ajax - JSF ページからバッキング Bean メソッドを呼び出せない

jsf ページから「追加」ボタンをクリックすると、バッキング Bean メソッド「addProperty」を呼び出すことができません。どんな体でも助けられますか???

私のJSFページコードは

そして、私のバッキングビーンコードは次のとおりです

サーバーログで addProperty() メソッドの System.out.println() を取得していません。つまり、[追加] ボタンをクリックしても addProperty メソッドが呼び出されません。

親切に助けてください....

0 投票する
2 に答える
1797 参照

jsf-2 - FacesMessage をバッキング Bean から ui:repeat の特定のフィールドにアタッチするにはどうすればよいですか?

次のように、可変数の入力要素を持つフォームがあります。

バッキング Bean の特定のメソッドがトリガーされたときに、たとえば の 2 回目の繰り返しにメッセージを追加したいがui:repeat、他のものには追加したくない。

ここでこの質問のさまざまなバリエーションを見てきましたが、すべての問題ui:repeatは、JSF コンポーネント ツリーで の反復が利用できないことが原因のようです。

私がこれまでに試したこと:

  • h:inputTextareas をMap<String,UIComponent>Beanの a にバインドします。(a) ...Using ...binding="#{myBean.uiMap[_lang.id]}"(_lang.idは一意の文字列)。これにより、JBWEB006017: Target Unreachable, ''BracketSuffix'' returned nullが生成されました。(ID を使用して対応する文字列のマップをダンプしました。同じ構文が の外でも問題なく動作しますbinding) (b) ...または...binding="#{myBean.uiMap.get()}". これにより、ページが正常にレンダリングされますが、メソッドのボタンを押してもセッターが呼び出されないため、UIComponentが に追加されることはありませんMap

  • h:inputTextareas を Bean の配列にバインドUIComponent[]し、適切な数の null を事前に入力してから、行カウンターをui:repeatxhtml ファイルのインデックスとして使用します。Null ポインター例外が発生しました。配列のセッターが呼び出されなかったため、配列に実際UIComponentの s が取り込まれませんでした。

  • 外部h:panelGroupを Bean にバインドし、JSF ツリー内のその子の中から入力要素を再帰的に見つけようとします。入力の 1 つだけが見つかりました。上記の「反復が利用できない」問題を参照してください。

  • また、行番号を手動で置き換えて生成しようとしましたui:repeatc:forEach(JSF ツリーで使用できるようにするため)、レンダリングされた出力はまったく得られませんでした。

(注: 目的は検証エラー メッセージを表示することですが、それらはバッキング Bean からf:validator取得する必要があります。バッキング Bean のデータに対して検証する必要があるため、カスタムのものであっても、または類似のものを使用することは実際にはオプションではありません。 )

率直に言って、私はアイデアがありません。これはそれほど難しいことではありませんよね?

編集:

私の 3 回目の試みである outer へのバインドではh:panelGroup、JSF ファインダー関数を次に示します。

これを で呼び出しています。これは、の周りのnodeバインディングです。(私のライブ アプリケーションはもう少し入れ子構造になっているため、再帰を使用しています) これですべての "theTitle" テキストエリアが得られるので、メッセージを追加したり、属性を好きなように読み取ったりできると思いました。残念ながら、メソッドは1 つの「theTitle」コンポーネントのみを返し、ログ メッセージはその理由を示しています。UIComponenth:panelGroupui:repeat

生成されたページの DOM では、id は "myform:myPanelGroup:0:theTitle" (の反復カウンターを含むui:repeat) のようになりますが、Bean は getClientId() のように見えるmyform:myPanelGroup:theTitleだけで、最後に (私は推測しますか?) 反復。

0 投票する
0 に答える
181 参照

jsf - カスタムコンポーネントから @ViewScoped Bean にアクセスする

EL 式によってバッキング Bean 内のメソッドを参照する属性を持つカスタム JSF コンポーネントがあります。参照されるメソッドは、コンポーネントのデコード プロセスの一部として呼び出す必要があります。

これは @SessionScoped Bean では非常にうまく機能しますが、@ViewAccessScoped Bean に切り替えると、バッキング Bean のメソッドへの参照が取得されます。

XHTML ビューをサポートする Bean 内のものではありません。EL 式で Bean/メソッドを解決すると、別の Bean インスタンスが返されるようです。

上記のコードは、Bean/メソッドへの参照を取得する正しい方法ですか? ここで何が問題なのか誰にもわかりませんか?

感謝と敬意

0 投票する
1 に答える
436 参照

java - データベースからの PrimeFaces を使用したブレッドクラム

データベース内のフォルダーを操作しています。各フォルダーは、その親によって参照されます。

名前をクリックすると、各フォルダが表示されます。「commandLink」にはパラメータがあります: フォルダ ID。それはうまく機能しますが、パスを追跡する方法がわかりませんroot > me > inme

backing-beans を使用して URL ".../root/me/inme" に仮想的に含める方法はありますか?

ありがとう

0 投票する
4 に答える
34917 参照

java - いくつかのボタンがクリックされたときにマネージド Bean メソッドを呼び出す

私は JSF が初めてで、クリックするとバッキング Bean のメソッドを呼び出すボタンが必要です。これは可能ですか、それとも AJAX などを使用する必要がありますか? 私は次のようなことを試しました

しかし、それらはうまくいきませんでした。それを行う通常の方法は何ですか?

編集:
そのボタンは JqueryUI によって作成され、ボタンのタイプを commandButton に変更できません。カスタマイズできるのは 2 つだけ
です。1. そのボタンから JavaScript 関数を呼び出す
2. フォームのターゲット (ボタンが存在する内部) を変更
するまたはフォーム送信時?

0 投票する
2 に答える
2706 参照

jsf-2 - バッキングビーンから ui:repeat 内の p:message にエラーメッセージを設定する方法

inputText と message コンポーネントを含むフォームがあります。
バッキング Bean からエラー メッセージを設定したいのですが、失敗し続けます。

以下は私のhtmlコードです:

以下は、バッキング Bean コードです。