如果您在<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();
}
}
无需注册它的每个组件上。