@TargetSE(valueSE={TYPESE,METHODSE,FIELDSE}) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE @NormalScope(passivating=true) @InheritedSE public @interface ConversationScoped
Bean が会話スコープであることを指定します。
ConversationScoped は、仕様で要求される組み込みの会話コンテキストに関連付ける必要がありますが、サードパーティの拡張機能は、それを独自のコンテキストに関連付けることもできます。以下で説明する動作は、組み込みの会話コンテキストにのみ関連しています。
会話スコープがアクティブです:
修飾子 @Initialized(ConversationScoped.class)を持つイベントは、会話コンテキストが初期化されるときに発生し、修飾子 @Destroyed(ConversationScoped.class)を持つイベントは、会話が破棄されるときに発生します。イベントペイロードは次のとおりです。
会話コンテキストは、特定の会話に関連付けられた状態へのアクセスを提供します。すべてのサーブレットリクエストには、関連する会話があります。この関連付けは、次のルールに従ってコンテナーによって自動的に管理されます。
会話は、一時的または長時間実行の 2 つの状態のいずれかになります。
Conversation.begin() を呼び出すことによって長時間実行とマークされる場合があります Conversation.end() を呼び出すことにより、長時間実行される会話に一時的なマークを付けることができます。長時間実行されるすべての会話には、文字列値の一意の識別子があります。これは、会話が長時間実行とマークされたときにアプリケーションによって設定されるか、コンテナーによって生成されます。
現在のサーブレットリクエストに関連付けられている会話がサーブレットリクエストの終了時に一時的な状態にある場合、破棄され、会話コンテキストも破棄されます。
現在のサーブレットリクエストに関連付けられている会話が、サーブレットリクエストの終了時に長時間実行状態にある場合、その会話は破棄されません。リクエストに関連付けられた長時間実行される会話は、会話の一意の識別子を含む cid という名前のリクエストパラメーターを使用して、任意のサーブレットリクエストに伝播できます。この場合、アプリケーションはこのリクエストパラメーターを管理する必要があります。
現在のサーブレットリクエストが JSF リクエストであり、会話が長時間実行状態にある場合、次のルールに従って伝播されます。
会話がサーブレットリクエストに伝播されない場合、または conversationPropagation という名前のリクエストパラメーターの値が none の場合、リクエストは新しい一時的な会話に関連付けられます。すべての長時間の会話は特定の HTTP サーブレットセッションにスコープ設定され、セッション境界を越えることはできません。次の場合、伝播された長時間の会話は復元できず、リクエストに再度関連付けることはできません。
Conversation, NonexistentConversationException, BusyConversationExceptionCopyright © 2019 Eclipse Foundation.
Use is subject to license terms.