> The issue I ran into cascaded from: 'why does myfaces render a form > after my html tag?' to 'implementing state write behind within > FaceletViewHandler' to finding out that some HtmlComponents were > dependent on behavior from the MyFaces JspViewHandler and the > implementations StateManager. My first question becomes, well, what if > some other company (maybe Oracle) wanted to provide a different > StateManager and suddenly, 'standard' tags stopped working? It is a > cascading effect that should be avoided at all costs by guaranteeing that: > > 1) API and Implementation code bases are separated > 2) Implementation Components only deal with API contracts, not locking > into MyFaces StateManager for ex. >
righty, right. This is what all open bugs regarding ADF Faces and Facelets are about. Needs to be fixed. Help is welcome! > > Surrounding View creation, with JSF 1.2, view creation happens in two > steps: build tree, render tree. This is the sole responsibility of the > ViewHandler. > > Your JspViewHandler would create a ResponseWrapper, capturing inlined > content within the JSP, include the target JSP-- producing a full > UIComponent tree that represents the whole page, with transient elements > representing inlined content. > > The second step is simply asking the UIViewRoot (now populated) to > render itself, then doing State-writebehind on the rendered view and > finally sending down to the client. > > So much of the lifting around missed-state during rendering or the stuff > that's coordinated in your ViewTag, would be done by any interchangable > ViewHandler. > > Performance wise, the full tree creation doesn't cost you anymore than > before, secondly the rendering is still the same (same components)-- > along with state saving. The only cost, really, is 'buffering' the > rendered output. Yes - even without being able to implement 1.2 fully right now we were planning to solve this ASAP. I also talked with Roger Kitain about this today, we'll see when someone of us actually has the time to implement it. regards, Martin
