您可以配置JSF 2.x的解释由以下空提交的数据为空
context-param的
web.xml(其中有一个很长的名字,这也将是为什么我不记得它;)):
<context-param> <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name> <param-value>true</param-value></context-param>
作为参考和感兴趣的人,在JSF 1.2(因此不是1.1或更旧的版本,因为在设计上不可能有
Converterfor
java.lang.String),可以通过以下方法解决
Converter:
public class EmptyTonullStringConverter implements Converter { public Object getAsObject(FacesContext facesContext, UIComponent component, String submittedValue) { if (submittedValue == null || submittedValue.isEmpty()) { if (component instanceof EditablevalueHolder) { ((EditablevalueHolder) component).setSubmittedValue(null); } return null; } return submittedValue; } public String getAsString(FacesContext facesContext, UIComponent component, Object modelValue) { return (modelValue == null) ? "" : modelValue.toString(); }}…需要在
faces-config.xml以下位置进行注册:
<converter> <converter-for-class>java.lang.String</converter-for-class> <converter-class>com.example.EmptyToNullStringConverter</converter-class></converter>
如果您尚未使用Java 6,请替换
submittedValue.empty()为
submittedValue.length() == 0。
也可以看看
- balusc.omnifaces



