Primefaces消息用于验证和其余的咆哮

时间:2015-03-10 00:52:20

标签: jsf jsf-2 primefaces

我有一个带有primefaces的JSF页面,我想使用p:messages作为输入验证的消息,并使用Growl元素来处理其他事情,如通知,错误......

目前我有一个属性为Growl,并且我正在为此属性发送通知。

问题在于我不知道哪个属性我必须放在p:messages组件中。如果我将其保留为null,则会在Growl和p:messages中显示通知消息。

在这里你可以看到我的JSF的一个例子。

<p:growl id="growlNotifyNewReg" for="growlNotificationsNewRegister"
                         showSummary="true" 
                         showDetail="true"
                         autoUpdate="true"/>

<h:outputText value="Validado"/>
<p:selectBooleanCheckbox id="checkValidado" value="#{}" required="true"/>

<h:outputText value="Temperatura (ºC)"/>
<p:inputText id="Temperatura" value="#{}" required="true">
      <f:validateDoubleRange minimum="-50" maximum="60" />
      <f:convertNumber maxFractionDigits="1" />
</p:inputText>

<!-- Other inputs... -->

<p:messages showSummary="true" showDetail="true" redisplay="false"/>

当我想发送通知时,我确实喜欢这个。

FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_INFO, "summary", "details");
FacesContext.getCurrentInstance().addMessage("growlNotificationsNewRegister", facesMsg);

此代码将消息发送到Growl组件,但也发送到消息组件,因为它没有属性。我想知道我必须在message组件中放置哪个属性,以仅显示表单的验证消息。

如您所见,我将redisplay属性设置为false。我可以在p:messages的for属性中添加多个id吗?

1 个答案:

答案 0 :(得分:3)

以下示例可以根据您的需要进行更改:

<。> in .xhtml

<h:form prependId="false"> 
     <p:growl id="growl" for="msg" showDetail="true" sticky="true" />  
     <p:panel header="Growl">  
     <h:panelGrid columns="2" cellpadding="5">  
        <p:outputLabel for="msg"  value="Message:" />   
        <p:inputText id="msg"  value="#{growlView.message}" required="true" />
        <p:outputLabel for="msg2" value="Message2:" />
        <p:inputText id="msg2" value="#{growlView.message2}" required="true" />  
     </h:panelGrid>  
     <p:commandButton value="Save" actionListener="#{growlView.saveMessage}" update="growl" />  
     </p:panel> 
     <p:messages id="messages" for="msg2" showDetail="true" autoUpdate="true" closable="true" />
</h:form>

for<p:growl>的{​​{1}}属性中,您可以添加您想要的任何ID <p:messages>

bean中的

for="id1 id2 .."