faces-config.xml で宣言され、JSF 1.2 で 2 つの異なるマネージド Bean スコープを持つ 2 つの Java Bean に関する質問があります。まず、私が今抱えている問題について説明したいと思います。
Javaシステムから別のシステムに情報をエクスポートする可能性があります(データの詳細とその具体的な転送方法はそれほど重要ではないと思います)。
私の意見では、そのエクスポートをトリガーするJava BeanにはマネージドBeanスコープ「セッション」があることが重要です。データ エクスポートはシステムのバックグラウンドで動作し、このセッション スコープが必要です。
ユーザーは、jsf / xhtml ページで、エクスポートが開始されたという情報を確認できます。具体的な問題は次のとおりです。
<ui:repeat value="#{adminArea.informationForExport}" var="info">
<h:outputText value="#{info}" />
</ui:repeat>
この情報は毎回 HTML DOM の一部であり、ユーザーが私のシステムで別の xhtml ページを見て、この xhtml ページに戻ってデータのエクスポートを開始できる場合、消えることはありません。
私の Bean「adminArea」は、faces-config.xml でマネージド Bean スコープ「session」で宣言され、データ エクスポート用の Java コードを実装しました。
<managed-bean>
<managed-bean-name>adminArea</managed-bean-name>
<managed-bean-class>resources.adminArea</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
宣言された Bean「adminArea」は、マネージド Bean スコープ「request」である Bean「newCalculation」のマネージド プロパティとして参照されました。
<managed-bean>
<managed-bean-name>newCalculation</managed-bean-name>
<managed-bean-class>resources.calculation</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>adminArea</property-name>
<value>#{adminArea}</value>
</managed-property>
</managed-bean>
この Bean にはマネージド Bean スコープ「リクエスト」が必要です。
Bean「adminArea」のマネージドBeanスコープを「セッション」から「リクエスト」に変更する唯一の方法はありますか? しかし、それは私のデータ エクスポートがバックグラウンドで動作しないという問題を引き起こします。
または、この問題を他の楽器で解決できますか?
グリーツ・マーウィード