如何自定义面部消息的呈现方式

时间:2012-11-23 01:47:50

标签: validation jsf-2

我想自定义面部信息的演示文稿。

为此,

<h:inputText id="name" required="true" />

验证失败时,它将显示在

<h:message for="name" />

但是,我想自定义演示文稿调用JS,如下所示:

<div class="notification"></div>
function showNotification(msg){
$(".notification").html(msg);
$(".notification").fadeIn(1000, function(){
    timeout = setTimeout(function(){
        $(".notification").fadeOut(1000);
    }, 5000);
});
}

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用FacesContext#getMessageList()来获取视图中的消息,如果需要,可以使用特定客户端ID的消息。您可以在ui:repeat中迭代它们。每个项目都是FacesMessage,有几个吸气剂。您可以使用<h:outputText escape="false">

在未转义的消息中显示任何HTML

所以,简而言之:

<ui:repeat value="#{facesContext.messageList('form:name')}" var="message">
    <div><h:outputText value="#{message.summary}" escape="false" /></div>
</ui:repeat>

(在上面的示例中,我假设您的表单有id="form"

或者,如果HTML帮助链接实际不是消息的一部分,那么:

<ui:repeat value="#{facesContext.messageList('form:name')}" var="message">
    <div>#{message.summary} <a href="help.xhtml">help</a></div>
</ui:repeat>