1

我有一个 JSF2 应用程序,用于<ui:repeat />呈现多个文本框,每个文本框都链接到集合中的一个项目。我需要在单个<h:messages />标签中的输入之后显示错误消息。

同时,我在<ui:repeat />标签之外还有一些其他必填字段,它们的输入旁边应该有错误消息,因此它们会有相应的<h:message />标签。这里的问题是,每次我触发了外部字段的验证时,它的消息也会出现<h:messages /><ui:repeat />.

这是代码:

<table cellpadding="0" cellspacing="0" width="100%">
    <tr>
        <td><h:outputLabel value="Items"/></td>
        <td>
            <ui:repeat var="i" value="#{itemsBean.itemsCount}" id="items">
                <h:inputText id="itemTitle" value="#{itemsBean.items[i]}" required="true" />
                <h:panelGroup layout="block" styleClass="clear" rendered="#{((i+1) % 10 == 0)}" />
            </ui:repeat>
            <h:messages id="itemsMessages" showDetail="false" showSummary="true" styleClass="error_list" />
        </td>
        <td><h:outputLabel value="Required Field" /></td>
        <td>
            <h:inputText id="requiredField" value="#{itemsBean.requiredField}" />
            <h:message for="requiredField" showDetail="false" showSummary="true" styleClass="error_list" />
        </td>
    </tr>
</table>

我知道这是 JSF 验证的工作方式,但我需要防止外部输入的消息出现在重复项验证摘要中。提前致谢。

4

1 回答 1

0

尝试<h:messages id="itemsMessages" showDetail="false" showSummary="true" styleClass="error_list" globalOnly="true"/>

这会导致组件仅显示来自未设置 for-attribute 的消息组件的消息。

于 2011-11-14T09:32:26.613 回答