如何从 FacesContext 中删除特定的 FacesMessage?
How to remove specific FacesMessage from FacesContext?
我们如何从 FacesContext
中删除特定的 FacesMessage
。假设我有一个包含两个 FacesMessages 的列表,其详细信息(getDetail()
)是 Mandatory Fields
和 Invalid Account Number
,我想删除 Mandatory Fields
FacesMessage
.
下面是我的示例代码:
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
被报告是因为我之前试图访问列表中不存在的元素
我们如何从 FacesContext
中删除特定的 FacesMessage
。假设我有一个包含两个 FacesMessages 的列表,其详细信息(getDetail()
)是 Mandatory Fields
和 Invalid Account Number
,我想删除 Mandatory Fields
FacesMessage
.
下面是我的示例代码:
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
被报告是因为我之前试图访问列表中不存在的元素