首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从FacesMessage中删除FacesContext

从FacesMessage中删除FacesContext
EN

Stack Overflow用户
提问于 2015-01-23 10:27:34
回答 1查看 3.6K关注 0票数 1

我以这种方式添加FacesMessages

代码语言:javascript
复制
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(severity, message, null));

我试着用这种方法移除它们

代码语言:javascript
复制
FacesContext context = FacesContext.getCurrentInstance()
Iterator<FacesMessage> it = context.getMessages();
while (it.hasNext()) {
    FacesMessage message = it.next();
    if (message.getSeverity() == FacesMessage.SEVERITY_WARN) {
            it.remove();
    }

}

这个迭代器总是空的问题,并且消息会被多次累积和显示。我也知道this solution

EN

回答 1

Stack Overflow用户

发布于 2015-01-23 14:34:41

当faces消息已经呈现时,迭代器将为空。当呈现响应阶段已经发生时,就会发生这种情况。这反过来意味着,在呈现响应阶段之后,您试图删除它。例如,在一个挂在PhaseListener上的afterPhase() of PhaseId.RENDER_RESPONSE中。

一种解决方案是将作业转移到beforePhase()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28107797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档