如何在没有用户点击的情况下以编程方式打开primefaces中的对话框?

时间:2015-01-03 08:43:29

标签: jsf primefaces

我正在使用Java EE 7和Primefaces开展考试管理课程。测试是定时的,一旦时间结束,我想自动显示一个对话框(即没有用户点击任何按钮)。我在点击按钮时成功使用了Primefaces Dialog框架,但无法自动完成。

为了计时测试,我使用的是TimerService,它在超时时调用无状态EJB的方法。我有一个会话范围的CDI bean,它创建了计时器。

这是CDI bean的post构造方法。

public void init()  {

    studentAnswers = new ArrayList<StudentAnswer>();

    examSections=ePaper.getSections();

    examTimerBean.createExamPaperDuration(10,RequestContext.getCurrentInstance());

}

无状态EJB如下 -

@Stateless
public class ExamTimerBean {

@Resource TimerService timerService;
RequestContext reqCtx;

public void createExamPaperDuration(int duration,RequestContext reqCtx){

    this.reqCtx=reqCtx;
    timerService.createTimer(duration*1000, null);

}

@Timeout
public void examTimeExpired(){// throws IOException{

    try{

    reqCtx.openDialog("thanks");

    }
    catch(EJBException e){
        System.out.println(e.getMessage());
    }
}
}

我将请求上下文传递给EJB,但是对话框没有打开。请帮助。

0 个答案:

没有答案