首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在primefaces消息中显示页面内的错误总数?

如何在primefaces消息中显示页面内的错误总数?
EN

Stack Overflow用户
提问于 2013-01-15 23:18:55
回答 3查看 2.1K关注 0票数 2

我使用的是jsf 2.1和Primefaces 3.3。我想使用<p:message>在页面顶部显示页面内的错误总数。

请给我如何做的建议,这将是有帮助的,如果你可以解释一个例子。提前谢谢你。

EN

回答 3

Stack Overflow用户

发布于 2013-01-16 00:17:29

如果您只想统计特定的消息(例如,仅计算错误)。你可以这样做:

代码语言:javascript
复制
@ManagedBean
@RequestScoped
public class MessageCount {

    public int getFatal() {
        return countMessages(FacesMessage.SEVERITY_FATAL);
    }

    public int getError() {
        return countMessages(FacesMessage.SEVERITY_ERROR);
    }

    public int getWarn() {
        return countMessages(FacesMessage.SEVERITY_WARN);
    }

    public int getInfo() {
        return countMessages(FacesMessage.SEVERITY_INFO);
    }

    private int countMessages(FacesMessage.Severity severity) {
        Iterator<FacesMessage> iterator = FacesContext.getCurrentInstance().getMessages();
        int count = 0;
        while (iterator.hasNext()) {
            FacesMessage msg = iterator.next();
            if (severity.compareTo(msg.getSeverity()) == 0) {
                count++;
            }
        }
        return count;
    }
}

在你的jsf页面中:

代码语言:javascript
复制
<h:outputText value="#{messageCount.error}"/>
票数 4
EN

Stack Overflow用户

发布于 2013-01-15 23:36:26

为什么使用<p:message/>

尝尝这个

代码语言:javascript
复制
<h:outputText value="#{fn:length(facesContext.messageList)}"/>
票数 2
EN

Stack Overflow用户

发布于 2013-01-15 23:36:28

这方面没有内置的功能。例如,您可以向表单添加inputHidden元素,并为该输入隐藏字段添加p:message

代码语言:javascript
复制
<p:messages for="justForErrorCount"/>
<h:inputHidden id="justForErrorCount"/>

在你的支持bean中,你可以做一些检查和添加消息:

代码语言:javascript
复制
if (FacesContext.getCurrentInstance().getMessageList() != null &&
        !FacesContext.getCurrentInstance().getMessageList().isEmpty()) {

    String message = "You have " + 
        FacesContext.getCurrentInstance().getMessageList().size() + " errors";
    FacesContext.getCurrentInstance().addMessage("justForErrorCount",
        new FacesMessage(FacesMessage.SEVERITY_ERROR, message);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14340848

复制
相关文章

相似问题

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