問題タブ [conversation-scope]
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-ee-6 - JavaEE6 Conversation.end が conversation.id を 1 にリセットしない
conversation.end が呼び出されたときに conversation.id はリセットされませんか?
シナリオ: CRUD で会話スコープを使用するアプリがあるため、リスト ページにアクセスすると会話が開始されます。詳細に移動し、[戻る] をクリックすると、会話が終了し、会話が再開されます。しかし、デバッグ モードにいる間に、conversation.end() が呼び出されると、conversation が null に設定されることがわかりました。次に、conversation.begin() を再呼び出しすると、conversation.id は 1 にリセットされず、最後の値 + 1 にリセットされます。そのように動作するのは正しいですか?
さらに不可解なのは、ログアウトして再度ログインした後、conversation.id が最後の値 + 1 を取得することです。
私の環境:javaee-apiを使用したJboss 7.1.3。
したがって、基本的に、すべてのバッキング Bean によって拡張された基本エンティティ (上記のコードが定義されている場所) があります。リスト ページがレンダリングされると、beginConversation が呼び出されます。詳細ページで戻るボタンをクリックすると、endConversation が呼び出されます。
ajax - Ajaxリクエストで@ConversationScopedを使用するには?
私は JSF2 と PrimeFaces を使用しており、Ajax リクエストを作成して現在conversation
が一時的なものかどうかを確認するたびに、そうではなく、新しい会話が開始されます。
Ajax リクエストを無効にすると、フォームは自動的に を渡し、cid
会話が再開されますが、 が Ajax リクエストの場合、cid
は自動的に渡されません。
cid
でAjaxリクエストを使用する場合、どのように渡すのが正しい@ConversationScoped
ですか? このパラメーターが自動的に渡されないのはなぜですか?
jsf-2 - WELD-000321 ページを更新したときに ID 3 を復元する会話が見つかりませんでした
会話中に表示されたページを更新するとエラーが発生します。このエラーを回避するにはどうすればよいですか?
状況:
index.xhtml と age.xhtml の 2 つの JSF ページがあります。
index.xhtml には、ユーザーが生年月日を入力するフォームが含まれています (バッキング Bean「bean」のプロパティ)。ユーザーがフォームを送信すると、age.xhtml は生年月日に従って年齢を表示します。
フォームはリダイレクト付きで送信されます。
computeAge メソッド:
同じバッキング Bean「bean」が両方のページで使用されます。このバッキング Bean には会話スコープがあります。
ページ age.xhtml:
getAge メソッド:
age.xhtml を更新する場合を除いて、すべて問題ありません。その後、次のエラー メッセージが表示されます: WELD-000321 ID 3 の復元する会話が見つかりません
更新前後にブラウザに表示される URL:
http://localhost:8080/tpjsf1/faces/age.xhtml?cid=3
問題は最後の cid=3 にあります。ユーザーが age.xhtml を更新したときにエラー ページを回避することは可能ですか?
jakarta-ee - GlassFish 3、Java EE での宣言型会話管理
アプリケーションの 1 つで @ConversationScoped EntityManagers に依存しています。
ただし、会話の外部 (Timer EJB) から前述の EntityManagers にアクセスする必要があります。存在しない場合に新しい会話を開くインターセプターの作成方法に関するチュートリアルを読みました-42行のチュートリアル
例をセットアップしようとすると、@Bound @Inject BoundConversationContext のターゲットがないという例外が発生します。
正直なところ、何が問題なのか、さらにどの方向を見ているのかわかりません。
私は現在使用しています:
GlassFish 3
Java EE 6
jsf - 会話スコープがリダイレクトで機能しない
私は JSF と PrettyFaces を使用していますが、次のことを行う必要があります。ui:repeat で生成された 4 つのボタンがあります。すべての commandButton は Conversation Bean にオブジェクトを設定します。次に、別のページに移動して、クリックされたボタンに設定されたオブジェクトを取得する必要があります。かなり単純に思えますが、問題は、ブラウザーで PrettyFaces に適した URL が必要なことです。
行われたテスト:
return commandbutton アクションに xhtml リソースを文字列として配置すると、正しくナビゲートされますが、URL は、見やすい URL ではなく、xhtml リソースを指します。(例: ...host/my-web/prices.xhtml)
フレンドリ URL を文字列 (/web/prices/) としてリターン コマンド ボタン アクションに入力すると、ナビゲートされません。
次のようにリダイレクトすると:
/li>
わかりやすい URL に正しく移動しますが、リダイレクトする前にコマンドボタン アクションで受信したオブジェクトを設定していて、会話 Bean でこのオブジェクトをナビゲートすると null になるため、会話は機能しません。
それを解決する方法はありますか?
前もって感謝します。
java - フィルター内から ConversationScoped CDI Bean を取得するにはどうすればよいですか?
@SessionScoped
Filter 内から CDI Bean を取得するのは比較的簡単です。ただし、Bean を注入しようとすると@ConversationScoped
、次のエラーがスローされます。
これは、会話が現在アクティブかどうかとは関係ありません。@ConversationScoped
Beanにコンテキストを提供する前にフィルターが発生するため、CDI は一時的な会話とアクティブな会話のどちらを使用する必要があるかを判断できないようです。
「十分に遅く」発生する、どのようなフィルター/傍受メカニズムを使用できますか?
jsf-2 - @ConversationScope Bean は参照値を保持しません
Twitterのログインプロセスを実装しようとしています。ログイン プロセス中に、ユーザーは Twitter Web サイトにリダイレクトされて資格情報を入力する必要があり、その後、私の Web サイト URL にリダイレクトされます。最初のリダイレクトの前に、RequestToken オブジェクト (Twitter4J ライブラリ) のインスタンスを保存し、リクエスト間で保持する必要があります。
それを行うために ConverstaionScoped Bean を使用することにしましたが、残念ながら参照の値はリクエスト間で保持されません。
ここに私のJSFページがあります:
ツイッター.xhtml:
twitterRedirect.xhtml:
私のTwitterログインコントローラー:
@ConverstaionScope の使用例に厳密に従っているように思えますが、期待した結果が得られません。リクエスト間でオブジェクトを保持するにはどうすればよいですか?