【发布时间】:2015-01-23 10:27:34
【问题描述】:
我这样添加 FacesMessages
FacesContext context = FacesContext.getCurrentInstance();
context.addMessage(null, new FacesMessage(severity, message, null));
我尝试以这种方式删除它们
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
【问题讨论】:
-
Faces 消息是请求范围的,因此它们仅适用于单个请求/响应周期。需要手动删除它们吗?
-
看起来只是时间问题。您究竟是在何时何地试图删除它们?此信息在问题中无处可见,因此世界上没有人能够在空白项目上重现您的问题。让我猜猜,您是否尝试在 呈现响应之后删除它们?如果代码(出于测试目的)直接放在
addMessage()之后,它是否有效? -
@BalusC 感谢您清除消息是请求范围的。我已经解决了这个问题。正如你们俩建议的那样,这是一个时间问题
-
好的,我会发布答案。但是,如果您实际编辑问题以包含有关您尝试删除它们的时间和地点的详细信息,那就更好了。
标签: jsf