我使用 JSF2.0 和 WELD-CDI 和 jboss AS7。我在 page-backbean 中使用 CDI@ConversiationScope。要转到一页,我使用的是菜单项。,如图:
<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()”之后,变量值没有被重置。为什么变量没有被重置?请帮帮我。