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

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

<page view-id="/test/*" login-required="true"></page>
<page view-id="/test/listDepartment.xhtml">
<action execute="#{org.jboss.seam.core.events.instance().raiseEvent('pageScopeControl', 'department')}"/>
<navigation from-action="#{departmentBean.add}">
<redirect view-id="/test/editDepartment.xhtml" />
</navigation>
</page>


然后建立一个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管理起来。
希望大家提点意见。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值