如何从FacesContext中移除特定的FacesMessage



如何从FacesContext中删除特定的FacesMessage。假设我有一个包含两个FacesMessages的列表,其详细信息(getDetail())是Mandatory FieldsInvalid Account Number,我想删除Mandatory FieldsFacesMessage

下面是我的示例代码:
ListIterator<?> cmessages = context.getMessageList().listIterator();
cmessages.hasPrevious();
while (cmessages.hasNext() && cmessages!=null) {
    FacesMessage msg =(FacesMessage) ((cmessages.next() instanceof FacesMessage)?cmessages.next():null);
    if(msg!=null){
        if(msg.getDetail().equals(messageDetail)){
              cmessages.next();
              cmessages.remove();
        }
     }
}

正如我上面的代码有时也给我UnsupportedOperation异常

下面是我写的修复我的问题的代码片段

public static void clearMessagesWithID(String messageID)
{
  String messageDetail = getErrorMessage(messageID);
  FacesContext context = FacesContext.getCurrentInstance();
  for (Iterator<FacesMessage> iterator = context.getMessages(); iterator.hasNext();) {
    FacesMessage msg = iterator.next();
    if (msg.getDetail().contains(messageDetail)) {
      // Remove the current element from the iterator and the list.
      iterator.remove();
    }
  }
}

UnsupportedOperation被报告了因为我之前试图访问list

中不存在的元素

相关内容

  • 没有找到相关文章

最新更新