0

我想自定义人脸消息的呈现方式。

为了这,

<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);
});
}

我怎样才能做到这一点?

4

1 回答 1

0

您可以使用FacesContext#getMessageList()来获取视图中的消息,如有必要,获取特定客户端 ID 的消息。您可以在ui:repeat. 每个项目都是一个FacesMessage有几个吸气剂。您可以使用 . 在未转义的消息中显示任何 HTML <h:outputText escape="false">

所以,简而言之:

<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>
于 2012-11-23T01:54:41.450 回答