【问题标题】:PrimeFaces: AccordionPanel: error message of required inputPrimeFaces:AccordionPanel:所需输入的错误消息
【发布时间】:2013-05-27 04:48:20
【问题描述】:

我有一个带有三个选项卡的 AccordionPanel。在第一个选项卡中是一个带有所需 inputTexts 的表单。现在我有一个问题,错误消息显示在所有三个选项卡中,而不仅仅是一个。有什么建议吗?如何为一个选项卡设置所需输入的错误消息?

<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>

感谢您的帮助!

【问题讨论】:

    标签: primefaces


    【解决方案1】:

    默认情况下p:messages 显示来自视图的每条 JSF 消息。如果只想显示特定的,则需要使用属性for

    在你的情况下,这应该可以解决问题:

    <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)。

    更多信息:

    【讨论】:

    • 非常感谢!这是我一直在寻找的。​​span>
    猜你喜欢
    • 2018-06-06
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 2015-10-10
    • 2016-12-11
    相关资源
    最近更新 更多