Yeah,
I know there was some work done, in that area,
but... I am lazy... :) so never bothered to check back
;-)
On Fri, Apr 11, 2008 at 10:15 AM, Martin Marinschek
<[EMAIL PROTECTED]> wrote:
> Try to include an <h:commandLink /> in a <tr:form/> or the other way
> round and see if you can submit the form like this - if it works, all
> should be well.
>
> It should work with RI 1.2, but also with 1.1 departing from 1.1_04, I think.
>
> regards,
>
> Martin
>
>
>
> On 4/11/08, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> > Hey Matthias!
> >
> > Can you give me a concrete use case in
> > which RI could break without this?
> >
> > I would test it during the week-end.
> >
> > thanks,
> >
> > On 4/10/08, Matthias Wessendorf <[EMAIL PROTECTED]> wrote:
> > > Christi,
> > >
> > > yes I forgot, that I renamed the method :-)
> > > We now *decorate* the HTML_BASIC (see log of the class)
> > > We currently only replace these three.
> > >
> > > I am not really sure, it it works without that...
> > > There might be some issues...
> > >
> > > Can you do me a favor ?
> > > check with RI 1.2_07 ?
> > > (they changed something on renderKit loading etc. there)
> > >
> > > If it works fine for you there, I'll check again with our internal
> things,
> > > and I'll finally remove that code.
> > >
> > > Thanks!
> > >
> > > -M
> > >
> > > On Thu, Apr 10, 2008 at 10:57 AM, <[EMAIL PROTECTED]> wrote:
> > > > hi, this is where I found out what happens exactly:
> > > >
> > > > //
> > > > // This RenderKit decorates the standard BASIC_HTML,
> > > > // but we need to replace some renderers with our own.
> > > > //
> > > > private void _modifyBasicHTMLRenderKit()
> > > > {
> > > > // We render UIForms with our own renderer
> > > > addRenderer(UIForm.COMPONENT_FAMILY,
> > > > "javax.faces.Form",
> > > > new HtmlFormRenderer());
> > > > // And we render UICommandLink with our own renderer
> > > > addRenderer(UICommand.COMPONENT_FAMILY,
> > > > "javax.faces.Link",
> > > > new HtmlCommandLinkRenderer());
> > > > // In jsf 1.1_02 the ri FormRenderer writes out script used by
> > > > // h:commandButton. Since we override the RI FormRenderer, we also
> > > > // need to override the commandButton renderer:
> > > > addRenderer(UICommand.COMPONENT_FAMILY,
> > > > "javax.faces.Button",
> > > > new HtmlCommandButtonRenderer());
> > > > }
> > > >
> > > > If you say now it should work, can we remove it ?
> > > > at least for 1.2 version.
> > > >
> > > > thanks for the support
> > > >
> > > >
> > > >
> > > >
> > > > On 4/10/08, Matthias Wessendorf <[EMAIL PROTECTED]> wrote:
> > > > > whoops...
> > > > > shitty Gmail...
> > > > >
> > > > > On Thu, Apr 10, 2008 at 10:20 AM, Matthias Wessendorf
> > > <[EMAIL PROTECTED]>
> > > > > wrote:
> > > > > > > I found something surprising, while working on a Tomahawk
> > > application,
> > > > > in
> > > > > > > which I added Trinidad for a couple of components.
> > > > > > > Trinidad overrides default renderers of some javax.faces.*
> > > components
> > > > > like
> > > > > > > Form, HtmlCommandButton and HtmlCommandLink.
> > > > > >
> > > > > > indeed.
> > > > > >
> > > > > > >
> > > > > > > Why is this needed?
> > > > > >
> > > > > > because the JSF spec is poor ?
> > > > > > Well... :) These component details know to much abo
> > > > > they know to much about the other details (at least in the past).
> > > > >
> > > > > like the way they render.
> > > > > Perhaps solved now, but I never looked at that.
> > > > > Perhaps you may check in CoreRenderKit's _addHtmlBasic() ?
> > > > >
> > > > > Thx
> > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > > I noticed it adds some custom scripts.
> > > > > > > BUT why should it be so intrusive in the default renderers?
> > > > > > >
> > > > > > > The problem that made me find this was that I got some
> > exceptions
> > > in
> > > > > the
> > > > > > > tomahawk PPR.
> > > > > > > Except on some pages, the only Trinidad component I use is
> > > tr:document
> > > > > to
> > > > > > > have the skinning enabled.
> > > > > > > I definitely expect for the Tomahawk PPR within a h:form and
> > > containing
> > > > > an
> > > > > > > h:commandButton to work.
> > > > > > >
> > > > > > > i got this stack trace on a PPR submit:
> > > > > > >
> > > > > > > javax.faces.FacesException: Exception while calling encodeEnd
> on
> > > > > component :
> > > > > > > {Component-Path : [Class:
> > javax.faces.component.UIViewRoot,ViewId:
> > > > > > > /pages/configuration/configAssessmentModuleEdit.xhtml][Class:
> > > > > > > org.apache.myfaces.trinidad.component.core.CoreDocument,Id:
> > > > > j_id1][Class:
> > > > > > > javax.faces.component.html.HtmlForm,Id: mform][Class:
> > > > > > > org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane,Id:
> > > > > > > moduleEditTab][Class:
> > > > > org.apache.myfaces.custom.tabbedpane.HtmlPanelTab,Id:
> > > > > > > childrenTab][Class:
> > > org.apache.myfaces.custom.ppr.PPRPanelGroup,Id:
> > > > > > > pprQuestionEdit][Class:
> > > javax.faces.component.html.HtmlPanelGroup,Id:
> > > > > > > j_id174]}
> > > > > > > at
> > > > > > >
> > > > >
> > > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:559)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChild(RendererUtils.java:420)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.renderChildren(RendererUtils.java:401)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.custom.ppr.PPRPanelGroupRenderer.encodeChildren(PPRPanelGroupRenderer.java:93)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:543)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.custom.ppr.PPRPhaseListener.encodeTriggeredComponents(PPRPhaseListener.java:288)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.custom.ppr.PPRPhaseListener.processPartialPageRequest(PPRPhaseListener.java:169)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.custom.ppr.PPRPhaseListener.beforePhase(PPRPhaseListener.java:94)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersBefore(PhaseListenerManager.java:73)
> > > > > > > at
> > > > > > >
> > > > >
> > > org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:134)
> > > > > > > at
> > > > > javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
> > > > > > > at
> > > > > > >
> > > > >
> > > org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:100)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> com.db.gto.coo.itsg.gui.login.LoginFilter.doHttpFilter(LoginFilter.java:131)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> com.db.gto.coo.itsg.gui.filter.SpringJSFFilterBase.doFilter(SpringJSFFilterBase.java:47)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:226)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:63)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
> > > > > > > at
> > > > > > >
> > > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> > > > > > > at java.lang.Thread.run(Thread.java:619)
> > > > > > > Caused by: javax.faces.FacesException: Exception while calling
> > > > > encodeEnd on
> > > > > > > component : {Component-Path : [Class:
> > > > > > > javax.faces.component.UIViewRoot,ViewId:
> > > > > > > /pages/configuration/configAssessmentModuleEdit.xhtml][Class:
> > > > > > > org.apache.myfaces.trinidad.component.core.CoreDocument,Id:
> > > > > j_id1][Class:
> > > > > > > javax.faces.component.html.HtmlForm,Id: mform][Class:
> > > > > > > org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane,Id:
> > > > > > > moduleEditTab][Class:
> > > > > org.apache.myfaces.custom.tabbedpane.HtmlPanelTab,Id:
> > > > > > > childrenTab][Class:
> > > org.apache.myfaces.custom.ppr.PPRPanelGroup,Id:
> > > > > > > pprQuestionEdit][Class:
> > > javax.faces.component.html.HtmlPanelGroup,Id:
> > > > > > > j_id174][Class: org.apache.myfaces.custom.subform.SubForm,Id:
> > > > > > > questionForm][Class:
> > javax.faces.component.html.HtmlPanelGrid,Id:
> > > > > j_id181]}
> > > > > > > at
> > > > > > >
> > > > >
> > > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:559)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:515)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:492)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:513)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:492)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.shared_impl.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:92)
> > > > > > > at
> > > > > > >
> > > > >
> > > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:556)
> > > > > > > ... 41 more
> > > > > > > Caused by: javax.faces.FacesException: Exception while calling
> > > > > encodeEnd on
> > > > > > > component : {Component-Path : [Class:
> > > > > > > javax.faces.component.UIViewRoot,ViewId:
> > > > > > > /pages/configuration/configAssessmentModuleEdit.xhtml][Class:
> > > > > > > org.apache.myfaces.trinidad.component.core.CoreDocument,Id:
> > > > > j_id1][Class:
> > > > > > > javax.faces.component.html.HtmlForm,Id: mform][Class:
> > > > > > > org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane,Id:
> > > > > > > moduleEditTab][Class:
> > > > > org.apache.myfaces.custom.tabbedpane.HtmlPanelTab,Id:
> > > > > > > childrenTab][Class:
> > > org.apache.myfaces.custom.ppr.PPRPanelGroup,Id:
> > > > > > > pprQuestionEdit][Class:
> > > javax.faces.component.html.HtmlPanelGroup,Id:
> > > > > > > j_id174][Class: org.apache.myfaces.custom.subform.SubForm,Id:
> > > > > > > questionForm][Class:
> > javax.faces.component.html.HtmlPanelGrid,Id:
> > > > > > > j_id181][Class: javax.faces.component.html.HtmlPanelGroup,Id:
> > > j_id191]}
> > > > > > > at
> > > > > > >
> > > > >
> > > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:559)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:515)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.renderChildren(HtmlGridRendererBase.java:221)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.shared_impl.renderkit.html.HtmlGridRendererBase.encodeEnd(HtmlGridRendererBase.java:102)
> > > > > > > at
> > > > > > >
> > > > >
> > > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:556)
> > > > > > > ... 47 more
> > > > > > > Caused by: javax.faces.FacesException: Exception while calling
> > > > > encodeBegin
> > > > > > > on component : {Component-Path : [Class:
> > > > > > > javax.faces.component.UIViewRoot,ViewId:
> > > > > > > /pages/configuration/configAssessmentModuleEdit.xhtml][Class:
> > > > > > > org.apache.myfaces.trinidad.component.core.CoreDocument,Id:
> > > > > j_id1][Class:
> > > > > > > javax.faces.component.html.HtmlForm,Id: mform][Class:
> > > > > > > org.apache.myfaces.custom.tabbedpane.HtmlPanelTabbedPane,Id:
> > > > > > > moduleEditTab][Class:
> > > > > org.apache.myfaces.custom.tabbedpane.HtmlPanelTab,Id:
> > > > > > > childrenTab][Class:
> > > org.apache.myfaces.custom.ppr.PPRPanelGroup,Id:
> > > > > > > pprQuestionEdit][Class:
> > > javax.faces.component.html.HtmlPanelGroup,Id:
> > > > > > > j_id174][Class: org.apache.myfaces.custom.subform.SubForm,Id:
> > > > > > > questionForm][Class:
> > javax.faces.component.html.HtmlPanelGrid,Id:
> > > > > > > j_id181][Class: javax.faces.component.html.HtmlPanelGroup,Id:
> > > > > > > j_id191][Class:
> javax.faces.component.html.HtmlCommandButton,Id:
> > > > > > > questionSave]}
> > > > > > > at
> > > > > > >
> > > > >
> > >
> > javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:531)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:506)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:492)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.shared_impl.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:92)
> > > > > > > at
> > > > > > >
> > > > >
> > > javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:556)
> > > > > > > ... 51 more
> > > > > > > Caused by: java.lang.NullPointerException
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.AutoSubmitUtils.getFullPageSubmitScript(AutoSubmitUtils.java:105)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> >
> org.apache.myfaces.trinidadinternal.renderkit.htmlBasic.HtmlCommandButtonRenderer.encodeBegin(HtmlCommandButtonRenderer.java:99)
> > > > > > > at
> > > > > > >
> > > > >
> > >
> > javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:528)
> > > > > > > ... 55 more
> > > > > > >
> > > > > > > --
> > > > > > > Cristi Toth
> > > > > > >
> > > > > > > -------------
> > > > > > > Codebeat
> > > > > > > www.codebeat.ro
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Matthias Wessendorf
> > > > > >
> > > > > > further stuff:
> > > > > > blog: http://matthiaswessendorf.wordpress.com/
> > > > > > sessions: http://www.slideshare.net/mwessendorf
> > > > > > mail: matzew-at-apache-dot-org
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Matthias Wessendorf
> > > > >
> > > > > further stuff:
> > > > > blog: http://matthiaswessendorf.wordpress.com/
> > > > > sessions: http://www.slideshare.net/mwessendorf
> > > > > mail: matzew-at-apache-dot-org
> > > > >
> > > >
> > > >
> > > > --
> > > >
> > > >
> > > > Cristi Toth
> > > >
> > > > -------------
> > > > Codebeat
> > > > www.codebeat.ro
> > > >
> > >
> > >
> > >
> > > --
> > > Matthias Wessendorf
> > >
> > > further stuff:
> > > blog: http://matthiaswessendorf.wordpress.com/
> > > sessions: http://www.slideshare.net/mwessendorf
> > > mail: matzew-at-apache-dot-org
> > >
> >
> >
> > --
> > Cristi Toth
> >
> > -------------
> > Codebeat
> > www.codebeat.ro
> >
>
>
>
>
> --
>
> http://www.irian.at
>
> Your JSF powerhouse -
> JSF Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache MyFaces
>
--
Matthias Wessendorf
further stuff:
blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
mail: matzew-at-apache-dot-org