我正在使用facelets创建表单。一个输入字段如下所示:
<p:inputText id="initials" value="#{dilution.initials}" />
dilution
是一个实体bean,而initials字段在其上设置了两个验证约束。一个大小约束和一个正则表达式模式约束。我的问题是获取两个约束的错误消息,以显示在输入字段旁边。使用<h:message>
仅显示其中一条消息并使用<h:messages>
显示所有输入字段错误消息或不显示任何内容(当我尝试设置<h:messages for="initials" autoUpdate="true" />
时)。
有没有简单的方法可以做到这一点?
完整形式:
<h:form id="addDilForm">
<p:panel>
<p:messages autoUpdate="true" showDetail="TRUE" />
<p:panelGrid>
<f:facet name="header" >
<p:row><p:column colspan="3">Ny spädningsfaktor</p:column></p:row>
</f:facet>
<p:row>
<p:column colspan="1">
<p:outputLabel for="sampT">Provtyp</p:outputLabel>
</p:column>
<p:column>
<p:selectOneMenu id="sampT" required="true" value="#{dilution.dilution.sampleType.ID}" >
<f:selectItem itemLabel="-" itemValue="" />
<f:selectItems value="#{SampleTypeController.samples}" var="samp" itemLabel="#{samp.name}" itemValue="#{samp.ID}" />
</p:selectOneMenu>
</p:column>
<p:column>
<p:message for="sampT" />
</p:column>
</p:row>
<p:row>
<p:column>
<p:outputLabel for="initials">Initialer</p:outputLabel>
</p:column>
<p:column >
<p:inputText id="initials" value="#{dilution.initials}" />
</p:column>
<p:column>
<p:message for="initials" />
</p:column>
</p:row>
<f:facet name="footer">
<p:row>
<p:column colspan="3">
<p:commandButton value="Save" action="#{dilution.save()}" update="addDilForm" icon="ui-icon-check" />
</p:column>
</p:row>
</f:facet>
</p:panelGrid>
</p:panel>
</h:form>
答案 0 :(得分:1)
使用
<h:message>
仅显示其中一条消息
在保留<h:messages>
属性的同时,只需使用复数“s”而不是<h:message>
for
。
<h:messages for="initials" />
<p:messages>
的工作方式相同,只是使用不同的用户界面。