You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by Matthias Wessendorf <ma...@apache.org> on 2009/03/24 15:26:39 UTC

Re: parent form not found

take a look here:

https://javaserverfaces-spec-public.dev.java.net/issues/show_bug.cgi?id=322

-Matthias

On Wed, Jan 28, 2009 at 9:14 PM, Thomas Modeneis
<th...@soujava.org.br> wrote:
>
> Hy Vikash Srivastava,
>
> I´m on the same m.f. problem here on my project.
>
>
> trinidad-impl-1.2.1-sources.jar
> trinidad-api-1.2.5-sources.jar
> jsf-impl-1.2_04-p02-sources.jar
> richfaces-api-3.2.0.GA-sources.jar
>
> so this sources you can found on jboss maven repository
> http://repository.jboss.com/maven2/org/
>
> So, ive tryed many things here bind tr:form and try to specify form name or
> parent... but all fails.
>
> so, i think here is the probblem:
>
> UIForm form = getNestingForm(context, component);
>
> calls this method:
>
> UIComponent parent = component.getParent();
>                while (parent != null && !(parent instanceof UIForm)) {
>                        parent = parent.getParent();
>                }
>
> and because you are using tr:form your parent is:
> org.apache.myfaces.trinidad.component.core.CoreForm
>
> and then this expression allways will be evaluate to false
> (parent instanceof UIForm)
>
> and you cant safelly continue.... =[
> GOD DAMM...why asmirnov@exadel.com (latest modification by $Author:
> alexsmirnov $) dont do this ?
> (parent instanceof UIComponent) ??
>
> so, but this is not asmirnov fault...
>
> i think the fault is on trinidad components three....
>
> so, i think in possible workaround:
>
> if you goes on this page:
>
> http://myfaces.apache.org/trinidad/trinidad-api/apidocs/org/apache/myfaces/trinidad/component/core/CoreForm.html
>
> you will see trinidad components three:
>
> java.lang.Object
>  extended by javax.faces.component.UIComponent
>      extended by org.apache.myfaces.trinidad.component.UIXComponent
>          extended by org.apache.myfaces.trinidad.component.UIXComponentBase
>              extended by org.apache.myfaces.trinidad.component.UIXForm
>                  extended by
> org.apache.myfaces.trinidad.component.core.CoreForm
>
>
> so, take a look on the h:form components three:
>
> http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/api/javax/faces/component/UIForm.html
>
> java.lang.Object
>  |
>  +--javax.faces.component.UIComponent
>        |
>        +--javax.faces.component.UIComponentBase
>              |
>              +--javax.faces.component.UIForm
>
>
> as you can see, the two components extends
> javax.faces.component.UIComponent, but not UIForm...
> trinidad developers create this UIXForm.... GOD DAMM......WHY??????? i dont
> know...
>
> so i will recompile trinidad trinidad-impl-1.2.1-sources.jar and make
> another component extending UIForm
>
>  +--javax.faces.component.UIComponent
>        |
>        +--javax.faces.component.UIComponentBase
>              |
>              +--javax.faces.component.UIForm
>
> so i dont know if this will fix my probblem,
> but if i solve this M.F. probblem i will post here the sollution.
>
> Sorry about my english, this is not my mother language.
>
> Regards,
>
> Thomas.
>
> ---------------------------
> org.ajax4jsf.renderkit.RendererUtils:
>
> public void encodeBeginFormIfNessesary(FacesContext context,
>                        UIComponent component) throws IOException {
>                UIForm form = getNestingForm(context, component);
>                if (null == form) {
>                        ResponseWriter writer = context.getResponseWriter();
>                        String clientId = component.getClientId(context) + DUMMY_FORM_ID;
>                        encodeBeginForm(context, component, writer, clientId);
>                        // writer.writeAttribute(HTML.style_ATTRIBUTE, "margin:0;
>                        // padding:0;", null);
>                }
>        }
>
> public UIForm getNestingForm(FacesContext context, UIComponent component) {
>                UIComponent parent = component.getParent();
>                while (parent != null && !(parent instanceof UIForm)) {
>                        parent = parent.getParent();
>                }
>
>                UIForm nestingForm = null;
>                if (parent != null) {
>                        // link is nested inside a form
>                        nestingForm = (UIForm) parent;
>                }
>                return nestingForm;
>        }
>
>
>
> mr.vikash wrote:
>>
>> Hello
>> I am using JBoss Seam with JSF and Trinidad in my project.
>>
>> I see a strange problem, actually i am using two templates to display the
>> pages which contains a menu items with some trinidad components. All the
>> controls are set at the run time.
>>
>> Main problem is that when i click the login page to open that particular
>> page then it cought an exception
>>
>> 17:20:46,416 ERROR [STDERR] Jan 17, 2009 5:20:46 PM
>> com.sun.facelets.FaceletViewHandler handleRenderException
>> SEVERE: Error Rendering View[/app_home.xhtml]
>> org.richfaces.component.EnclosingFormRequiredException: class
>> org.richfaces.component.html.HtmlDropDownMenu (id="xxxx") did not find
>> parent form.
>>       at
>> org.richfaces.component.util.FormUtil.throwEnclFormReqExceptionIfNeed(FormUtil.java:45)
>>       at
>> org.richfaces.renderkit.html.DropDownMenuRenderer.doEncodeBegin(DropDownMenuRenderer.java:156)
>>       at
>> org.richfaces.renderkit.html.DropDownMenuRenderer.doEncodeBegin(DropDownMenuRenderer.java:148)
>>       at org.ajax4jsf.renderkit.RendererBase.encodeBegin(RendererBase.java:101)
>>       at
>> javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)
>>       at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:280)
>>       at
>> org.richfaces.renderkit.html.ToolBarGroupRenderer.encodeChildren(ToolBarGroupRenderer.java:81)
>>       at
>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
>>       at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:282)
>>       at
>> org.richfaces.renderkit.html.ToolBarRendererBase.encodeChildren(ToolBarRendererBase.java:103)
>>       at
>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
>>       at
>> org.apache.myfaces.trinidad.component.UIXComponentBase.__encodeRecursive(UIXComponentBase.java:1355)
>>       at
>> org.apache.myfaces.trinidad.component.UIXComponentBase.__encodeRecursive(UIXComponentBase.java:1363)
>>       at
>> org.apache.myfaces.trinidad.component.UIXComponentBase.encodeAll(UIXComponentBase.java:769)
>>       at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
>>       at
>> com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
>>       at
>> javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:178)
>>       at
>> org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:188)
>>       at
>> org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
>>       at
>> org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:197)
>>       at
>> com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
>>       at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
>>       at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
>>       at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
>>       at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>       at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>       at
>> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:238)
>>       at
>> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:195)
>>       at
>> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:138)
>>       at
>> org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
>>       at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>       at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>       at
>> org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
>>       at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
>>       at
>> org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
>>       at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
>>       at
>> org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
>>       at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
>>       at
>> org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
>>       at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
>>       at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:307)
>>       at
>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:423)
>>       at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:550)
>>       at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
>>       at
>> org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
>>       at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
>>       at
>> org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
>>       at
>> org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
>>       at
>> org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
>>       at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
>>       at
>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>       at
>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>       at
>> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
>>       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:230)
>>       at
>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
>>       at
>> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
>>       at
>> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
>>       at
>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
>>       at
>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>       at
>> org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
>>       at
>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>       at
>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
>>       at
>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
>>       at
>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>>       at
>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
>>       at java.lang.Thread.run(Thread.java:619)
>> 17:20:46,510 INFO  [lifecycle] WARNING: FacesMessage(s) have been
>> enqueued, but may not have been displayed.
>> sourceId=null[severity=(INFO 0), summary=(Welcome, EC), detail=(Welcome,
>> EC)]
>> 17:21:17,417 INFO  [Contexts] starting up:
>> org.jboss.seam.security.identity
>> 17:21:17,417 INFO  [Contexts] starting up: org.jboss.seam.web.session
>> 17:21:17,604 ERROR [STDERR] Jan 17, 2009 5:21:17 PM
>> org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderKit
>> createResponseWriter
>> SEVERE: No RenderingContext has been created.
>> 17:21:17,838 ERROR [STDERR] Jan 17, 2009 5:21:17 PM
>> org.apache.myfaces.trinidadinternal.renderkit.core.CoreRenderKit
>> createResponseWriter
>> SEVERE: No RenderingContext has been created.
>>
>>
>> I am currently using:
>> seam : 2.0
>> richfaces 3.3.0
>> Jboss 4.2.3.GA
>> trinidad : .2
>>
>>
>> Any Idea?
>>
>> Thanks!
>> Vikash Srivastava
>>
>
> --
> View this message in context: http://www.nabble.com/parent-form-not-found-tp21515885p21713722.html
> Sent from the My Faces - Dev mailing list archive at Nabble.com.
>
>



-- 
Matthias Wessendorf

blog: http://matthiaswessendorf.wordpress.com/
sessions: http://www.slideshare.net/mwessendorf
twitter: http://twitter.com/mwessendorf