私は JSF2.0 と WELD-CDI と jboss AS7 を使用しています。page-backbean で CDI@ConversationScope を使用しています。1 つのページに移動するには、次のようにメニュー項目を使用しています。
<rich:menuItem
label="redirect to page1"
execute="@this"
action="#{myBean.begin}"/>
このメニューのアクションでは、次のメソッドが呼び出されて会話が開始され、目的のページにリダイレクトされます。
@Named(value = "myBean")
@ConversationScoped
public class MyBean implements Serializable {
@Inject
private Conversation conversation;
public String begin() {
if (!conversation.isTransient()) {
conversation.end();
}
conversation.setTimeout(“1800000”);
conversation.begin();
return "page1";
}
}
およびfaces-config.xml :
<navigation-case>
<from-outcome>page1</from-outcome>
<to-view-id>/sample/page1.xhtml</to-view-id>
<redirect/>
</navigation-case>
これまでのところ、すべてがうまく機能しています。
ちなみに、conversation.end()を実行した後、再度適用すると、変数は変更されず、変数のすべての値が保持されます。どうして?!
"conversation.end()" を実行した後、変数の値がリセットされません。変数がリセットされないのはなぜですか?助けてください。