Validation 显示多个包含超过h:message的字段的JSF验证错误
在多个输入字段上进行验证的表单应显示时尚的错误消息,并在包含在红色框中的消息前面显示一个图标 只有在出现错误时,才能呈现包含图标和消息的h:panelGroup 只有一个经过验证的输入字段,这将起作用:Validation 显示多个包含超过h:message的字段的JSF验证错误,validation,jsf,rendering,Validation,Jsf,Rendering,在多个输入字段上进行验证的表单应显示时尚的错误消息,并在包含在红色框中的消息前面显示一个图标 只有在出现错误时,才能呈现包含图标和消息的h:panelGroup 只有一个经过验证的输入字段,这将起作用: <h:panelGroup rendered="#{facesContext.validationFailed}" 我的解决方案是现在为每个输入都有一个验证器,并为每个验证器添加一个属性´´validationFailed´´ <p:inputNumber id="mileage"
<h:panelGroup rendered="#{facesContext.validationFailed}"
我的解决方案是现在为每个输入都有一个验证器,并为每个验证器添加一个属性´´validationFailed´´
<p:inputNumber id="mileage" validator="#{mileageValidator.validate}"></p:inputNumber>
<h:panelGroup rendered="#{mileageValidator.validationFailed}" styleClass="wizard-alert-box">
<div class="wizard-alert-content-margin">
<h:graphicImage name="attention.png"/>
<h:message id="invalid-mileage" for="mileage" showSummary="true" showDetail="false"/>
</div>
</h:panelGroup>
<p:calendar id="date" validator="#{dateValidator.validate}"></p:calendar>
<h:panelGroup rendered="#{dateValidator.validationFailed}" styleClass="wizard-alert-box">
<div class="wizard-alert-content-margin">
<h:graphicImage name="attention.png"/>
<h:message id="invalid-date" for="date" showSummary="true" showDetail="false"/>
</div>
</h:panelGroup>
在你的样品中,我只看到一个。如果有多个panelGroup,并且看起来都像Yes,则有多个。那么,对于渲染属性,我可以使用什么表达式使它们的行为与所需的不同呢
@Named("mileageValidator")
public class MileageValidator {
@Getter
private boolean validationFailed;
public void validate(FacesContext context, UIComponent component, Object value) {
validationFailed = value == null;
if (validationFailed) {
throw new ValidatorException(new FacesMessage("mileage empty"));
}
}
}