如何在 p:messages 组件中显示字符串数组的值

How to show values from String Array in p:messages component

我需要你的帮助来显示字符串数组中的值并将它们显示在 jsf 页面的消息组件中。

在代码中,我有一个包含以下条目的 String[]

String[] messages = new String[] {
    "Record No.1 Fail",
    "Record No.2 Fail",
    "Record No.3 Success"
};

现在我需要你帮助在消息组件中向用户显示字符串数组中的失败记录,该数组称为数据,使用代码:

FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Record No.1 Fail", ""));
 // values from String Array should be passed

而 jsf 页面有:

<p:messages id="messages" showDetail="true" autoUpdate="true" closable="true" />

<p:messages> 组件将处理多条消息。只需确保您已将一个放在将在操作完成后呈现或更新的 xhtml 页面中。

因此,在您的支持 bean 中,您应该只遍历消息[]并添加面孔消息,就像@BalusC 建议的那样。

        String[] messages = new String[] {
                "Record No.1 Fail",
                "Record No.2 Fail",
                "Record No.3 Success"
        };
        for(int i = 0 ; i < messages.length; i++){
            String msg = messages[i];
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, null));
        }

结果将如下所示:

顺便说一下,您没有使用 details 选项,所以应该使用 showDetail="false"