【发布时间】:2023-03-13 20:32:01
【问题描述】:
我在 JSF 表单中有一堆带有关联标签和验证器的输入字段。
在某些字段上,验证失败会将标签变为红色,而在某些字段上则不会。
知道原因可能在哪里,或者如何调试?
我通过单击标签并观察焦点转到相应的输入字段来验证标签/输入关系是否正确设置。
我们使用 JSF-2.0 和 Primefaces 5
这个变红了:
<p:column style="width:10em;">
<f:facet name="header">
<span
title="#{messages['tooltip.model.modelSearch.modelKeyPattern']}">
<p:outputPanel>
<p:outputLabel
id="modelKeyPatternLabel"
for="modelKeyPattern"
styleClass="control-label"
value="#{messages['label.model.modelSearch.modelKey']}" />
<p:inputText
id="modelKeyPattern"
value="#{modelSearchBean.modelKeyPattern}"
validatorMessage="#{messages['error.model.modelSearch.modelKey']}"
size="6"
styleClass="searchField">
<f:validateLength maximum="6" />
</p:inputText>
</p:outputPanel>
</span>
</f:facet>
这个没有:
<p:column style="width:6em;">
<f:facet name="header">
<span
title="#{messages['tooltip.model.modelSearch.modelYear']}">
<p:outputPanel>
<h:outputLabel
id="modelYearLabel"
for="modelYear"
styleClass="control-label"
value="#{messages['label.model.modelSearch.table.column.modelYear']}" />
<p:inputText
id="modelYear"
value="#{modelSearchBean.modelYear}"
validator="#{modelYeaValidator.validate}"
styleClass="searchField"
size="4">
</p:inputText>
</p:outputPanel>
</span>
</f:facet>
<h:outputText value="#{model.modelYear}" />
</p:column>
【问题讨论】:
-
您是否在控制台中看到任何 javascript 错误(使用 firefox 调试控制台)?
-
@Makky 控制台没有错误
-
modelYeaValidator.validate()被正确调用了吗? -
@Omar 是的。使用期望值调用 Get,当值无效时抛出 ValidatorException。
-
抛出该异常时,您是否使用该构造函数(作为参数)发送自定义验证错误消息(
FacesMessage的实例)?
标签: validation jsf primefaces