問題タブ [ajax4jsf]
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.
java - JSF - 動的に追加されたコンポーネントのバインディング値
こんな感じをJSFで実装したい(検索画面の一部)
「 + 」ボタンをクリックすると新しい行が動的に追加され、「 - 」ボタンをクリックすると行が削除されます。問題は、値 (動的に作成された行のユーザー入力) をバッキング モデルにバインドすることです。
セッション スコープのバッキング Bean を作成しました。コードの一部、
+ボタンのアクションはaddEmtpyCriteria メソッドをトリガーし、(a4j を使用して) セクション全体を (新しい行で) 再レンダリングします。
これは単なるボイラープレートであり、Bean がセッション スコープである限り、すべてが正常に機能します。ただし、リクエストスコープに含める方がより直感的です。1 回の検索は、ユーザーによって行われる 1 回の要求であり、ユーザー セッションに関連付けられることはありません。また、セッションにあると、開発者は、新しい検索画面を表示するために、セッションからバッキング Bean をクリア/削除する必要があります。
これを行うより良い方法はありますか?セッションスコープに入れるのは正しいですか?
jsf - AJAX (JSF+richfaces) を使用した show/hide トリックの再レンダリングは、a4j:repeat の最初のレコードでのみ機能します
しばらくの間、私は Java ベースの Web プロジェクトに取り組んでおり、この Web サイトが非常に役立つことが何度もありました。
だから、「私自身の問題がいくつかあります - 助けていただければ幸いです!
わかりましたので、ここにあります-
メッセージのリストをレンダリングしようとしています。各メッセージは、メッセージのタイトルとメッセージの本文で構成されています。私が取り組んでいるトリックは、タイトル (a4j:commandLink) がクリックされていない限り、メッセージ本文を非表示にすることです。タイトルをクリックすると、本文が表示されます。もう一度クリックすると、非表示になります。などなど。
JSF側で行ったことは次のとおりです(簡単にするために一部を省略しています)。
1. ダミーの「 renderFlag
」フィールド (最終的には非表示にする必要があります)。この値は、ボディをレンダリングする必要があるかどうかを示します。
2. レンダリング支援用のバッキング Bean (ForumRenderAssistJSF)。目標は、適切な renderFlag の値を「true」から「false」に、またはその逆に反転することです。
3. ForumRenderAssistJSF.reevaluateRender() のリクエストを発行するときに各メッセージを分離する a4j:region。これにより、Bean は正しい「renderFlag」フィールドを見つけることができます。
豆に関しては:
そして問題は次のとおりです:
このトリックは実際に機能しますが、リストの最初のメッセージに対してのみです! それらの残りについては、サーバーが適切なrenderFlag入力テキストコンポーネントに到達できることがわかります(クライアントで値を挿入することによってテストされます)が、何らかの理由で、クライアントはAJAX応答時に常に空白(コンテンツなし)をレンダリングします!
Richfaces のチュートリアルとマニュアルを深く掘り下げてみましたが、すべてが本来あるべき状態にあるように思えます。それで、私はここでちょっと迷ってしまいました。私が言ったように、あなたの助けに深く感謝します!
ありがとう!
java - jsf 検証の問題 - 無効な入力フィールドに必須のフィールド検証を適用する
無効なフィールドに適用されるrequired=true検証に問題があります。
a4j:commandButton と、フォーム内に州のリストと国のリストを含む 2 つのドロップダウンがあります。どちらのドロップダウンにも required="true" 検証が適用されています。以下に示すように、タグ属性 disabled="true" を使用することで、州のドロップダウンが有効になり、国のドロップダウンがデフォルトで無効になります。
と
シナリオ 1:状態ドロップダウンで何も選択せずに a4j:commandButton をクリックします。 結果:予期される状態ドロップダウンの必須フィールド検証エラー
ラジオ ボタン (フォームの外側) をクリックすると、州のドロップダウンが無効になり、以下に示すように jquery/javascript を使用して国のドロップダウンが有効になります。
シナリオ 2:国ドロップダウンで何も選択せずに a4j:commandButton をクリックします。 結果:州と国の両方のドロップダウンで必須フィールドの検証エラーが発生しました。ただし、国ドロップダウンの検証エラーのみが予期されていました。
<h:selectOneMenu>
実行時に for タグによって生成された html コード:
jsf タグ属性を使用してドロップダウンを無効にする場合:<select disabled="disabled">...</select>
jqueryを使用してドロップダウンを無効にする場合:<select disabled="">...</select>
jqueryによって無効にされたフィールドをjsfが検証している理由を誰かが知っていますか?
jsf - Can't define a event and bind an on this event at the same time
Let's consider this simple code:
this will generate the following HTML code:
Now, I just add something in the onchange
event of my <h:inputText>
:
This will generate the following HTML code:
As you can see, the Ajax code is not added anymore. This is a really strange behavior as far as I am concerned. Why the <a4j:support>
does not attach the Ajax call if the event is already defined in the input field?
So my question is how to make the <a4j:support>
working on an event
that is already defined in the input
? Of course, the solution must run both the Javascript code defined in onchange
and the Ajax call.
In others words, I would like to have the following HTML:
I am using Richfaces 3.3.2 and JSF 1.2
EDIT
Of course, I can move the onchange
Javascript code in the onsubmit
attribute of the <a4j:support>
, doing something like that:
But is it the only way??
java - JSFは、A4Jを使用するブラウザーでサーブド側の例外を処理します
A4Jは、サーバーへのajax呼び出しが例外で終了する状況を処理できますか?ハンドルとは、たとえば、例外が発生したことを示すダイアログボックスをユーザーに表示できることを意味しますか?サーバー側の例外が存在する場合のA4Jのデフォルトの動作は、何もしないことですが、これは多少誤解を招く恐れがあります。
java - A4JでignoreDupResponseがデフォルトでtrueに設定されていないのはなぜですか
ほとんどの場合、a4j:support、a4j:commandLink、a4j:commandButtonなどのコンポーネントでignoreDupResponseをtrueに設定する必要があるようです。どのシナリオでignoreDupResponseをfalseに設定すると便利ですか?ignoreDupResponseをtrueに設定することによるパフォーマンスコストはありますか?そうでない場合、A4JによってignoreDupResponseがデフォルトでtrueに設定されないのはなぜですか?
validation - h:inputText は検証時にラベルを再レンダリングしません
検証時に h:inputText ラベル フィールド値を呼び出そうとすると、特有の問題が発生します。ラベル フィールドに静的な値を渡す場合にのみ機能します。動的な値を渡すと、そのフィールドの検証が失敗すると、ラベルのレンダリングに失敗します。
最小長の検証が失敗した場合、次のようなエラー メッセージが表示されます。
ここに表示されるラベルはありません: 最低 3 文字である必要があります
しかし、動的な値を渡す代わりにラベルをハードコーディングすると、有効な検証メッセージが表示され、ラベル名が画面に表示されます。
現在、最小長の検証が失敗した場合、エラー メッセージは次のように表示されます。
氏名: 最低 3 文字である必要があります
JSF のドキュメントも確認しましたが、ラベルが式言語の式を受け入れると書かれています。では、失敗した検証後に渡された動的な値がレンダリングされないのはなぜですか?
また、さまざまな言語の National Language Feature を追加するために、(リソース バンドルから) ラベルを動的に渡す必要があります。これが、静的フィールドの代わりに動的な値を label 属性に渡さなければならない理由です。
ありがとう。
jsf - JSFでa4j:jsFunctionとactionListenerを同期する方法
実行用の次のコードがありますが、ajax リクエストに関連する問題が発生しています。
ボタンクリック時の actionListener 呼び出し
A4j:js関数
- 最初に createNewLog() 関数を完了する必要があります
- その後、executeTool() 関数を完了する必要があります。
現在、同じ方法で呼び出していますが、createNewLog() 関数の半分が最初に実行され、次に executeTool() 関数に進みます。ここでは、実行のためにいくつかのコードを取得し、再び createNewlog() 関数に移動します。この後、 createNewLog() が実行され、再度 executeTool() が実行されます。
richfaces - Richfaces: コンポーネントの 'rendered' 属性値を、extendedDataTable の a4j:support で変更する
richfaces extendedDataTable を a4j:support で使用して、rich:panel の「レンダリング」属性の値を変更しようとしていますが、機能していません。
これは、rich:extendedDataTable と rich:panel を含む私の JSF ページの一部です。
rich:panel 'rendered' 属性のデフォルト値は false (バッキング Bean で設定) です。私が達成したかったのは、extendedDataTable の行が選択されたときに、その値が true に変更されて GUI に表示されるようにすることです。
そして、これは私のバッキング Bean の一部です。
takeSelection( ) メソッドで setShowPane(true) を使用して、rich:panel 'rendered' 属性の値を true に変更しました。問題は豊富です。行が選択されているときにパネルが GUI に表示されません。
次のように、a4j:support を指定して ah:commandButton を追加し、showPane を true に設定して、別の簡単なテストを行いました。
バッキング Bean では次のようになります。
期待どおりに動作しています。ボタンをクリックすると、rich:panel が GUI に表示されます。
私のコードで何が欠けていましたか?
jsf - コンテンツは変更されません
これが私が達成したいことです。左側にナビゲーションパネル、右側にコンテンツパネルがあります。ユーザーが左側のナビゲーションパネルのリンクをクリックすると、ajax呼び出しが行われ、コンテンツパネルがレンダリングされます。現在の実装では、クリックしたリンクに基づいてコンテンツが変更されました。ただし、次の手順を実行してもコンテンツが変更されないことがわかりました
。1。[ユーザーの表示]をクリックすると、ユーザーリストが表示されます
。2。[ユーザーの追加]をクリックして1人のユーザーを追加します
。3。[ユーザーの表示]をクリックすると、ユーザーリストが表示されます。ただし、内容は手順1の内容と同じ
です。データがdbに挿入されていると確信しています。このビューがサーバーにキャッシュされたようです。この問題を解決する方法はありますか?
以下は私のコードとスクリーンショットです。
ありがとうございました、