1

私は 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()" を実行した後、変数の値がリセットされません。変数がリセットされないのはなぜですか?助けてください。

4

1 に答える 1