問題タブ [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.
jsf - 別の h:selectOneMenu 値に応じて h:selectOneMenu をロードする
2 つの h:selectOneMenu (1: 国、2: 都市) があります。ajaxを使用して、selectOneMenuの都市で選択した1つの国からすべての都市をロードする必要があります。国 selectOneMenu の値を変更すると、私の都市 selectOneMenu は countryBean.selectedCountry から null 値を取得します。
これは、都市を見つける方法です。
countryBean.selectedCountry は常に null であるため、NullPointerException が発生しています。これを行う正しい方法は何ですか?
ajax - JSF ページからバッキング Bean メソッドを呼び出せない
jsf ページから「追加」ボタンをクリックすると、バッキング Bean メソッド「addProperty」を呼び出すことができません。どんな体でも助けられますか???
私のJSFページコードは
そして、私のバッキングビーンコードは次のとおりです
サーバーログで addProperty() メソッドの System.out.println() を取得していません。つまり、[追加] ボタンをクリックしても addProperty メソッドが呼び出されません。
親切に助けてください....
jsf-2 - FacesMessage をバッキング Bean から ui:repeat の特定のフィールドにアタッチするにはどうすればよいですか?
次のように、可変数の入力要素を持つフォームがあります。
バッキング Bean の特定のメソッドがトリガーされたときに、たとえば の 2 回目の繰り返しにメッセージを追加したいがui:repeat
、他のものには追加したくない。
ここでこの質問のさまざまなバリエーションを見てきましたが、すべての問題ui:repeat
は、JSF コンポーネント ツリーで の反復が利用できないことが原因のようです。
私がこれまでに試したこと:
h:inputTextarea
s を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:inputTextarea
s を Bean の配列にバインドUIComponent[]
し、適切な数の null を事前に入力してから、行カウンターをui:repeat
xhtml ファイルのインデックスとして使用します。Null ポインター例外が発生しました。配列のセッターが呼び出されなかったため、配列に実際UIComponent
の s が取り込まれませんでした。外部
h:panelGroup
を Bean にバインドし、JSF ツリー内のその子の中から入力要素を再帰的に見つけようとします。入力の 1 つだけが見つかりました。上記の「反復が利用できない」問題を参照してください。また、行番号を手動で置き換えて生成しようとしました
ui:repeat
がc:forEach
(JSF ツリーで使用できるようにするため)、レンダリングされた出力はまったく得られませんでした。
(注: 目的は検証エラー メッセージを表示することですが、それらはバッキング Bean からf:validator
取得する必要があります。バッキング Bean のデータに対して検証する必要があるため、カスタムのものであっても、または類似のものを使用することは実際にはオプションではありません。 )
率直に言って、私はアイデアがありません。これはそれほど難しいことではありませんよね?
編集:
私の 3 回目の試みである outer へのバインドではh:panelGroup
、JSF ファインダー関数を次に示します。
これを で呼び出しています。これは、の周りのnode
バインディングです。(私のライブ アプリケーションはもう少し入れ子構造になっているため、再帰を使用しています) これですべての "theTitle" テキストエリアが得られるので、メッセージを追加したり、属性を好きなように読み取ったりできると思いました。残念ながら、メソッドは1 つの「theTitle」コンポーネントのみを返し、ログ メッセージはその理由を示しています。UIComponent
h:panelGroup
ui:repeat
生成されたページの DOM では、id は "myform:myPanelGroup:0:theTitle" (の反復カウンターを含むui:repeat
) のようになりますが、Bean は getClientId() のように見えるmyform:myPanelGroup:theTitle
だけで、最後に (私は推測しますか?) 反復。
jsf - カスタムコンポーネントから @ViewScoped Bean にアクセスする
EL 式によってバッキング Bean 内のメソッドを参照する属性を持つカスタム JSF コンポーネントがあります。参照されるメソッドは、コンポーネントのデコード プロセスの一部として呼び出す必要があります。
これは @SessionScoped Bean では非常にうまく機能しますが、@ViewAccessScoped Bean に切り替えると、バッキング Bean のメソッドへの参照が取得されます。
XHTML ビューをサポートする Bean 内のものではありません。EL 式で Bean/メソッドを解決すると、別の Bean インスタンスが返されるようです。
上記のコードは、Bean/メソッドへの参照を取得する正しい方法ですか? ここで何が問題なのか誰にもわかりませんか?
感謝と敬意
java - データベースからの PrimeFaces を使用したブレッドクラム
データベース内のフォルダーを操作しています。各フォルダーは、その親によって参照されます。
名前をクリックすると、各フォルダが表示されます。「commandLink」にはパラメータがあります: フォルダ ID。それはうまく機能しますが、パスを追跡する方法がわかりませんroot > me > inme
。
backing-beans を使用して URL ".../root/me/inme" に仮想的に含める方法はありますか?
ありがとう
java - いくつかのボタンがクリックされたときにマネージド Bean メソッドを呼び出す
私は JSF が初めてで、クリックするとバッキング Bean のメソッドを呼び出すボタンが必要です。これは可能ですか、それとも AJAX などを使用する必要がありますか? 私は次のようなことを試しました
しかし、それらはうまくいきませんでした。それを行う通常の方法は何ですか?
編集:
そのボタンは JqueryUI によって作成され、ボタンのタイプを commandButton に変更できません。カスタマイズできるのは 2 つだけ
です。1. そのボタンから JavaScript 関数を呼び出す
2. フォームのターゲット (ボタンが存在する内部) を変更
するまたはフォーム送信時?
jsf-2 - バッキングビーンから ui:repeat 内の p:message にエラーメッセージを設定する方法
inputText と message コンポーネントを含むフォームがあります。
バッキング Bean からエラー メッセージを設定したいのですが、失敗し続けます。
以下は私のhtmlコードです:
以下は、バッキング Bean コードです。