Seam页面conversation作用域的控制问题

seam框架中的conversation是个非常的棒的东西,但是在页面开启长对话后,结束的方法比较困惑,使用@End注解终觉得不踏实。我现在尝试的事件驱动模型解决方案如下。
在导航文件中如下配置:










然后建立一个Observer组件:

@Name("pageScopeObserver")
@Scope(ScopeType.SESSION)
public class PageScopeObserver {
private String curPageScope;
private String prePageScope;


@In(value = "org.jboss.seam.core.conversation",required = false)
Conversation conversation;

@Observer("pageScopeControl")
synchronized public void fetchPageScopeEvent(String pageEvent) {
curPageScope = pageEvent;
if (curPageScope.equals(prePageScope) == false) {
prePageScope = curPageScope;
if (conversation != null) {
conversation.end();
conversation.leave();
}
}
}

这样可以实现通过定制各种不同的事件类型,将单个页面或一组页面的conversation管理起来。
希望大家提点意见。

你可能感兴趣的:(Seam,JBoss,Java,配置管理,框架)