2011-11-14 39 views
1

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

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

下面是代码:

<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的方式验证工作,但我需要防止出现重复项验证摘要外部输入的信息。 在此先感谢。

+0

你有没有解决过这个问题? – edhedges

+1

@edhedges,恐怕不是。我已经使用了一种解决方法,将消息移出并设置消息服务器端 –

回答

0

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

这将导致部件只显示从消息组件的消息,没有为属性集。

+0

我试过了,但现在没有出现“”输入消息。 –