Validation 如何验证JSF中的多个字段?
我正在使用JSF进行验证,我看到了许多非常基本的逻辑示例。坦白地说,我把它们和HelloWorld示例放在同一个类别中。我无法想象将错误消息放在xhtml文件中,对每个验证字段使用单独的验证方法,或者使用bean验证 我想做的是,在支持bean上有一个方法,该方法将对每个字段执行验证,记录由i18n属性文件中的键驱动的错误消息 这能做到吗?如果是这样,我们如何将该方法注册为验证方法,如何获取提交的字段值进行评估,以及如何注册错误消息Validation 如何验证JSF中的多个字段?,validation,jsf,Validation,Jsf,我正在使用JSF进行验证,我看到了许多非常基本的逻辑示例。坦白地说,我把它们和HelloWorld示例放在同一个类别中。我无法想象将错误消息放在xhtml文件中,对每个验证字段使用单独的验证方法,或者使用bean验证 我想做的是,在支持bean上有一个方法,该方法将对每个字段执行验证,记录由i18n属性文件中的键驱动的错误消息 这能做到吗?如果是这样,我们如何将该方法注册为验证方法,如何获取提交的字段值进行评估,以及如何注册错误消息 <h:inputText id="username" v
<h:inputText id="username" value="#{bean.username}" label="UserName" binding="#{bean.component}"/>
<h:message for="username" />
<h:commandButton value="Submit" action="#{bean.actionMethod}" />
请参阅此以获取组件客户端id
我认为
组件
用于将错误消息绑定到特定字段,以便将其显示在该字段旁边。我没有这样的要求-我所有的错误消息都显示在表单的顶部。因此,我没有使用组件
。您所展示的方法(actionMethod()
中的validate()
)回答了我的问题,因此我接受这一解决方案。谢谢
private UIComponent component;
public UIComponent getComponent() {
return component;
}
public void setComponent(UIComponent component) {
this.component = component;
}
public String actionMethod() {
if (!validate()) {
return null;
}
// do your action method logic
}
private boolean validate() {
FacesContext context = FacesContext.getCurrentInstance();
//do validation for your fields and add to faces messages
FacesMessage msg = new FacesMessage(severity, summary, detail);
context.addMessage(component.getClientId(), msg);
// do for other fields
return status;
}