PrimeFaces:AccordionPanel:所需输入的错误消息

PrimeFaces:AccordionPanel:所需输入的错误消息,primefaces,Primefaces,我有一个有三个标签的手风琴面板。在第一个选项卡中,是一个带有所需InputExt的表单。现在我遇到了一个问题,错误消息显示在所有三个选项卡中,而不是仅显示在一个选项卡中。有什么建议吗?如何仅为一个选项卡设置所需输入的错误消息 <p:accordionPanel dynamic="true" cache="true"> <p:tab title="Change your details" id="tabDetails"> <p:messages id=

我有一个有三个标签的手风琴面板。在第一个选项卡中,是一个带有所需InputExt的表单。现在我遇到了一个问题,错误消息显示在所有三个选项卡中,而不是仅显示在一个选项卡中。有什么建议吗?如何仅为一个选项卡设置所需输入的错误消息

<p:accordionPanel dynamic="true" cache="true">
    <p:tab title="Change your details" id="tabDetails">
    <p:messages id="message1" showDetail="true" autoUpdate="true" closable="true" />
        <h:panelGrid columns="2" cellpadding="10" id="gridDetails">
            <h:outputText value="First name: *" /> 
            <p:inputText value="#{login.current.firstName}" id="firstName" required="true" />
            <!-- ... -->
                        <p:commandButton value="save" actionListener="#{login.saveModifications}" update="gridDetails"/>
        </h:panelGrid>
    </p:tab> 
    <p:tab title="Change your password" id="tabPass">
    <p:messages id="message2" showDetail="true" autoUpdate="true" closable="true"/>
        <h:panelGrid columns="3" cellpadding="10" id="gridPass">                    
            <!-- ... -->            
            <p:commandButton value="save" actionListener="#{login.changePassword}" update="gridPass" />
        </h:panelGrid>
    </p:tab>
        <!-- ... -->
</p:accordionPanel>


谢谢你的帮助

默认情况下
p:messages
显示视图中的每个JSF消息。如果只想显示特定的属性,则需要将属性
用于

在您的情况下,这应该可以做到:

<p:accordionPanel dynamic="true" cache="true">
    <p:tab title="Change your details" id="tabDetails">
    <p:messages id="message1" for="btn1" showDetail="true" autoUpdate="true" closable="true" />
        <h:panelGrid columns="2" cellpadding="10" id="gridDetails">
            <h:outputText value="First name: *" /> 
            <p:inputText value="#{login.current.firstName}" id="firstName" required="true" />
            <!-- ... -->
                        <p:commandButton id="btn1" value="save" actionListener="#{login.saveModifications}" update="gridDetails"/>
        </h:panelGrid>
    </p:tab> 
    <p:tab title="Change your password" id="tabPass">
    <p:messages id="message2" for="btn2" showDetail="true" autoUpdate="true" closable="true"/>
        <h:panelGrid columns="3" cellpadding="10" id="gridPass">                    
            <!-- ... -->            
            <p:commandButton id="btn2" value="save" actionListener="#{login.changePassword}" update="gridPass" />
        </h:panelGrid>
    </p:tab>
        <!-- ... -->
</p:accordionPanel>

注意:我已将特定ID添加到动作组件(
p:commandButton

更多信息:


非常感谢!这就是我一直在寻找的。