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#4043977

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4043977
_______________________________________________
jboss-user mailing list
jboss-user@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to