当前位置: 首页 > 知识库问答 >
问题:

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

邰建业
2023-03-14

我有一个有三个标签的手风琴面板。在第一个选项卡中,是一个带有所需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>

谢谢帮忙!

共有1个答案

公良照
2023-03-14

默认情况下,p:消息显示视图中的每个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:命令按钮)。

更多信息:

  • p:消息
  • 面部信息增强
 类似资料:
  • 我有以下资料: 我需要覆盖所有jsf所需验证的输入组件消息。 默认值:"登录:验证错误。Vous Devez Indiquer une Valur。" 自定义:“登录:est要求。” 我已经在com中创建了一个属性文件。应用程序。包含以下行的foo命名消息: 此外,我已在faces配置中注册了它,如下所示: 但我仍然得到了默认的必需验证消息。

  • 我想用JOLT规范做JSON到JSON的转换。我有一个输入,它是Flattern JSOn,我想把它隐藏到嵌套JSOn中。我已经为此编写了JOLT规范,下面提到了它。但它并没有给出我所期望的输出。 提前感谢....

  • 我有一个工作表单,它有一个必填字段,不能为空: 如果我在请求中指定此字段,但将该字段保留为空,则会得到以下响应: 如果我在请求中省略此字段,我将得到以下响应: 有没有一些内置的Symfony逻辑,我可以用它来使第二个例子与第一个例子相匹配? [编辑]使用的是Symfony 2.5-现在更新为Symfony 2.8。同样的问题。

  • 为了代码重用的目的,并在我的Web应用程序中保持一致的功能,我在我的应用程序中创建了一个输入组件,其作用是在父窗体中嵌入一个mat-输入。 当mat输入是必填字段时,组件会在父窗体中正确显示该字段,当用户与该字段交互但未输入任何内容时,会显示错误。但是,在没有用户与嵌入字段进行任何交互的情况下提交父表单时,不会显示任何错误。请参见下面的StackBlitz url: https://stackbl

  • 在我的项目中,.settings\org.eclipse.buildship.core.prefs包含 PS我的项目使用Gradle。

  • 对于作业,我必须编写以下代码: 当我尝试编译它时,它在命令提示符下给了我3个错误,说“无法解析符号,符号:类扫描仪,位置:类单词,扫描仪用户输入=新扫描仪(System.in)”。我不确定错误在哪里。我应该使用BufferedReader作为输入吗?