必填字段的 JSF 验证
Posted
技术标签:
【中文标题】必填字段的 JSF 验证【英文标题】:JSF validation for required fields 【发布时间】:2011-08-14 07:19:33 【问题描述】:假设我们有一个包含一些字段必需和一些不是(可选)的表单。 现在当我们说字段是必需的,那么验证器只会验证 输入,但不会先修剪输入然后验证。
为了解决这个问题,我编写了一个在表单提交时调用的 javascript 函数。 但它也会验证可选字段。
向所有输入字段添加转换器并不优雅。 他们也是我可以覆盖必需验证过程的任何方式。 或者我如何识别 javascript 中的可选输入字段。
那么正确的方法是什么。
使用 JSF 1.2
【问题讨论】:
【参考方案1】:如果您在<converter-for-class>
而不是<converter-id>
上注册转换器,那么它将应用于所有值类型。
<converter>
<converter-for-class>java.lang.String</converter-for-class>
<converter-class>com.example.EmptyToNullConverter</converter-class>
</converter>
与
public class EmptyToNullConverter implements Converter
@Override
public Object getAsObject(FacesContext facesContext, UIComponent component, String value)
if (value == null || value.trim().length() == 0)
if (component instanceof EditableValueHolder)
((EditableValueHolder) component).setSubmittedValue(null);
return null;
return value;
@Override
public String getAsString(FacesContext facesContext, UIComponent component, Object value)
return value == null ? null : value.toString();
无需在每个组件上注册。
【讨论】:
以上是关于必填字段的 JSF 验证的主要内容,如果未能解决你的问题,请参考以下文章
当我在 Primefaces 上打开带有必填字段的模态对话框时,如何阻止验证触发