I have a simple array of strings backing an <s:selectItems> for an
<h:selectOneMenu>. When I don't set noSelectionLabel, it works fine. It
renders the options something like
| <option value="durango">durango</option>
|
However, when I set noSelectionLabel, the menu doesn't function, because the options
are rendered like
<option>durango</option>
After some debugging, I found that the problem is in the ConverterChain that is attached
to the HtmlSelectOneMenu component. JSF calls the converter to convert the value
"durango" to a string during rendering, but the converter returns null
(there's only one converter attached to the chain, a NoSelectionConverter, which
returns NO_SELECTION_VALUE, so the chain returns null).
It looks like the there is normally a default converter to fall back on. I think the
ConverterChain constructor tries to create a default converter based on the type of the
value, but this doesn't work for Strings (debugging showed that
facesContext.getApplication().createConverter(String.class) returns null).
So, I think the solution would be to have the ConverterChain constructor create a default
pass-through String converter when valueBinding.getType(facesContext) is equal to
String.class.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4043977#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...