DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
Creating a null-capable converter
Here's a methodology for creating converters that support null-capable and disabled SelectItems that might be of interest to others.
Example usage (hand-typed):
SelectItem selectItems[] = new SelectItem[items1List.size() + items2List.size() + 3];
int index = 0;
selectItems[index++] = new SelectItem(ConverterOptions.NULL_OPTION_VALUE, NO_ITEM_SELECTED);
selectItems[index++] = new SelectItem(ConverterOptions.DISABLED_OPTION_VALUE, ITEM1_LIST_HEADER);
for (int index1 = 0; index1 < itemsList.size(); ++index1) {
selectItems[index++] = (SelectItem )items1List.get(index1);
}
selectItems[index++] = new SelectItem(ConverterOptions.DISABLED_OPTION_VALUE, ITEM2_LIST_HEADER);
for (int index2 = 0; index2 < itemsList.size(); ++index2) {
selectItems[index++] = (SelectItem )items2List.get(index2);
}
return selectItems;
Converter code:
public final static String DISABLED_OPTION_VALUE = "jsf.converter.DISABLED_OPTION_VALUE";
public final static String NULL_OPTION_VALUE = "jsf.converter.NULL_OPTION_VALUE";
public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException
{
if (null == value) return null;
if (ConverterOptions.DISABLED_OPTION_VALUE.equals(value)) return ConverterOptions.DISABLED_OPTION_VALUE; // should never be executed
if (ConverterOptions.NULL_OPTION_VALUE.equals(value)) return null;
return // your getAsObject implementation;
}
public String getAsString(FacesContext context, UIComponent component, Object value) throws ConverterException
{
if (null == value) return null;
if (ConverterOptions.DISABLED_OPTION_VALUE.equals(value)) return ConverterOptions.DISABLED_OPTION_VALUE;
if (ConverterOptions.NULL_OPTION_VALUE.equals(value)) return ConverterOptions.NULL_OPTION_VALUE;
return // your getAsString implementation;
}
Approach for InputText
An other approache for InputText components can be found at http://jroller.com/page/stritti?entry=jsf_stringconverter_for_null_values