myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Thornton <and...@caret.cam.ac.uk>
Subject Re: Bug in h:selectManyListbox possibly due to interaction with x:panelTabbedPane
Date Thu, 17 Feb 2005 15:54:02 GMT
Andrew Thornton wrote:
> Hi!
>   I have a selectManyListbox on the second pane of a panelTabbedPane. 
> When I click to it, the box preselects none of the values I have bound 
> to it. I believe this happens because the call to 
> uiSelectMany.getSubmittedValue() on line 475 of RenderUtils returns an 
> String[] of size 0. I don't where this is set, since it doesn't appear 
> to be set using setSubmittedValue() but it pretty much makes it 
> impossible to use.

OK managed to catch it setting the submittedValue...

It's called by HtmlRenderUtils.decodeUISelectMany (line 201).

I think the problem is that because the component already exists and 
wasn't rendered on the first tab, when you change tabs the 
applyRequestValues phase for object fires.

Now because the object wasn't rendered but wasn't explicitly disabled 
when it fails to find any parameters relating to it, it assumes that the 
user has deliberately set none.

A better solution for cases like these (including the booleanCheckBoxes) 
would be to render a hidden input if the object is also rendered and 
then check for the existence of that. You could also use it to say if 
the object was disabled instead of relying on the object's disabled to 
remained consistent across the request. (I.E. asking was object disabled 
not is.)

thanks,
andy
--
Andrew Thornton

Mime
View raw message