如何更好地使用JSF h:messages?

问题描述 投票:17回答:3

我的目标是使用h:messages传达用户-错误和确认消息。显示这两种不同消息的CSS样式是不同的,实际上,我想在确认消息旁边使用图像。

例如:

<tr>
    <td>
        <img/>
    </td>
    <td>
        <h:msg>
    </td>
</tr>

所以我尝试根据2个不同的客户端ID将消息添加到Faces上下文中>

<tr>
    <td height="5">
        <h:messages style="color:darkred" id="error_message" />
    </td>
</tr>

<tr>
    <td width="89%" class="InfoMsg" align="center">
        <h:messages id="confirm_message" />
    </td>
</tr>

和java层:

FacesMessage facesMessage = new FacesMessage(Constants.saveMessageConfirm);

FacesContext.getCurrentInstance().addMessage(Constants.STATIC_CONFIRM_MSG_CLIENT_ID, facesMessage); 

但是,即使我将消息添加到clientId Confirm_message-仅添加到Confirm_message-而不是error_message-消息也以2种不同的样式显示两次(请参阅上面的HTML)。

2个问题:

  1. 这里是什么问题?

  2. 如果我想在第二个td中显示tr内的图像,并在出现确认消息时有条件地显示第二个tr-最佳方法是什么?

  3. 谢谢

我的目标是使用h:messages传达用户-错误和确认消息。显示这两种不同消息的CSS样式是不同的,实际上,我想在...

jsf
3个回答
43
投票

h:messages显示all


5
投票

facesContext.addMessage("clientId", facesMessage); 更改为<h:message for="clientId">


1
投票

我们可以针对不同的严重性级别使用不同类型的h:消息。例如,您可能希望将所有错误消息显示在红色框中,并以不同的样式显示,例如黄色表示警告,绿色表示信息。您也可以用不同的面板围起来。您可以通过使用不同的h:messages并分别应用样式来实现。

© www.soinside.com 2019 - 2024. All rights reserved.