JSF ページでは、ハンドル ファイルのアップロード イベントごとに、Bean の新しいインスタンスが作成されます。毎回新しいクライアントのようです。また、Web ブラウザーも別のクライアントのようです。
では、これらの FileUploadEvents が 1 つのブラウザのみから来て、1 つの Bean のみをインスタンス化する方法はありますか?
@ViewScoped JSF Bean の代わりに CDI を使用しようとしています。
index.xhtml:
<p:fileUpload fileUploadListener="#{bean.handleFileUpload}"/>
豆:
@Named
@ConversationScoped
public class Bean {
//code
@Inject
Conversation conversation;
public void HandleFileUpload(FileUploadEvent fileUploadEvent){
if(conversation.isTransient()){ //Always true :(
conversation.begin();
}
//Beans get created each time it needs to access this method.
}