UISelect*** only renders in encodeEnd(FacesContext, UIComponent) ----------------------------------------------------------------
Key: MYFACES-658 URL: http://issues.apache.org/jira/browse/MYFACES-658 Project: MyFaces Type: Improvement Components: Implementation Versions: 1.1.0 Reporter: Thomas Timbul I have written a ForEach component that is aimed to mirror jstl forEach capabilities. It works for pretty much all nested components, but specifically not for any SelectOne, SelectMany, ... There are (as far as I can tell) 2 major reasons for this: 1. The renderer (HtmlMenuRendererBase) renders the menu only in its encodeEnd, and it means that any attempt to encode children (forEach) is foiled as the call is never delegated. Really, the menu should be encoded in the encodeChildren method (if only for consistency). 2. and this one is linked to the above: The menu is rendered outside of the normal cycle. By this I mean that the menu renders itself and any children. Ideally, the menu would render only the <select></select> frame (encodeBegin and encodeEnd) and leave the selectItem creation to a separate renderer. This would allow me (in this case) to let my forEach renderer take care of child creation. Existing code can be easily reused as HtmlRendererUtils.internalRenderSelect renders SelectItemS perfectly without the need for the containing menu to be visible (except maybe for ID creation) Unfortunately I do not know what impact this kind of change may have on the rest of the lifecycle, but my guess is 'none', since only the encoding will differ and the ForEach component (or similar flow control) would not render visibly and does not have an ID. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira