You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by Felix Gonschorek <fe...@gg-media.biz> on 2007/06/14 19:57:35 UTC
[Trinidad] PPR and Dialog
Hi,
this topic helped me, since i could find out, that partially updating a
component after dialog return is possible.
but:
returnListener="${backingBean.returnFromDialog}"
(void returnFromDialog(ReturnEvent e))
does only get called, when i use javax.faces.STATE_SAVING_METHOD=client
when i activate serverside state saving, the returnListener method in my
backing bean is not called. is that intended? trinidad 1.0.1-SNAPSHOT
thx & regards
felix
Srinath K schrieb:
> Sorry for a Wrong tip. viewRoot doesn't render anything and hence it
> cannot be added as a partial target. One simple solution could be wrap
> all your contents with a panelGrouplayout component and add it to the
> partial target.
> You can use the binding attribute to get the instance of the
> panelGroupLayout or any other component in your managed bean
>
> <tr:panelGroupLayout binding="#{DialogMB.panel}">
> ..
> </tr:panelGroupLayout>
>
> in your managed bean
>
> CorePanelGroupLayout panel; and a getter and setter for the same.
>
> -Thanks,
> Srinath K
>
>
>
> On 5/2/07, *Luka Surija * <luka.surija@iytim.hr
> <ma...@iytim.hr>> wrote:
>
> Hi,
> tnx for the tip, but it doesn't work.
>
> here is my code:
>
> --- Managed bean "DialogMB"----
> public void returnContactDetail(ReturnEvent event){
>
> RequestContext.getCurrentInstance
> ().addPartialTarget(FacesContext.getCurrentInstance().getViewRoot());
> }
>
>
> --- Close button on Dialog ----
> public void closeContactDetail(ActionEvent event){
> RequestContext.getCurrentInstance
> ().returnFromDialog(null,null);
> }
>
> --- JSF code ---
> <tr:commandLink text="details" action="#{DialogMB.contactDetail}"
> useWindow="true" returnListener="#{DialogMB.returnContactDetail }" />
>
>
> after closing the Dialog the page is not refreshed and in server log I
> get this exception:
>
> ava.lang.NullPointerException
> at
> org.apache.myfaces.trinidadinternal.context.RequestContextImpl._getNearestPPRTarget
> (RequestContextImpl.java:697)
> at
> org.apache.myfaces.trinidadinternal.context.RequestContextImpl.addPartialTarget(RequestContextImpl.java:448)
> at
> com.iytim.yachtpool.web.DialogMB.returnContactDetail (DialogMB.java:45)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
> at
> com.sun.el.MethodExpressionImpl.invoke (MethodExpressionImpl.java:283)
> at
> com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
> at
> com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69)
> at
> org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1183)
> at
> org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:162)
> at
> org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:110)
> at
> org.apache.myfaces.trinidad.component.UIXTable.broadcast(UIXTable.java:190)
> at
> javax.faces.component.UIViewRoot.broadcastEvents (UIViewRoot.java:448)
> at
> javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
> at
> com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
> at
> com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:248)
> at
> com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
> at javax.faces.webapp.FacesServlet.service(FacesServlet.java
> :244)
> at
> org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:398)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java
> :304)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
> at
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java
> :326)
> at
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:290)
> at
> org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java
> :213)
> at
> org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:90)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:255)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke
> (StandardPipeline.java:611)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
> at
> com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:81)
> at
> org.apache.catalina.core.StandardHostValve.invoke
> (StandardHostValve.java:207)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
> at
> org.apache.catalina.core.StandardEngineValve.invoke
> (StandardEngineValve.java:137)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service (CoyoteAdapter.java:249)
> at
> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:618)
> at
> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess
> (DefaultProcessorTask.java:549)
> at
> com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:790)
> at
> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask
> (DefaultReadTask.java:326)
> at
> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:248)
> at
> com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java
> :199)
> at
> com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
> at
> com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:93)
> ---
>
>
> It looks like FacesContext.getCurrentInstance.getViewRoot() returns
> null?!!
>
> The same thing happend if I want to partial update anything using
> actionListener. For example:
>
> public void changePremiums(ValueChangeEvent event){
>
> RequestContext.getCurrentInstance().addPartialTarget(event.getComponent().findComponent("someComponent"));
> } <-- this code works on changeListener
>
> public void changePremiums(ActionEvent event){
>
> RequestContext.getCurrentInstance().addPartialTarget(event.getComponent().findComponent("someComponent"));
> } <== but here I get the same exception if I want
> to refresh something pressing commanButton
>
> Is this a bug or some feature that I don't understand?!
>
> Best regards
> Luka
>
>
>
> Srinath Reddy Komatireddy wrote:
> > Try adding the viewroot to the partialTargets in your
> returnListener by
> >
> > RequestContext.getCurrentInstance().addPartialTarget(viewRoot);
> >
> > -Thanks,
> > Srinath K.
> >
> > On 5/2/07, *Luka Surija* <luka.surija@iytim.hr
> <ma...@iytim.hr>
> > <mailto:luka.surija@iytim.hr <ma...@iytim.hr>>> wrote:
> >
> > How to partialy refresh a page after returning from a Dialog
> (called
> > from tr:commandLink )?
> >
> > Regards
> >
> > --
> > Luka Surija
> > luka.surija@iytim.hr <ma...@iytim.hr>
> <mailto:luka.surija@iytim.hr <ma...@iytim.hr> >
> > +385 98 434 061
> >
> > I.Y. tim d.o.o.
> > www.iytim.hr <http://www.iytim.hr> <http://www.iytim.hr>
> > info@iytim.hr <ma...@iytim.hr> <mailto:info@iytim.hr
> <ma...@iytim.hr>>
> >
> >
>
>
--
Felix Gonschorek
GG-Media
Rombachweg 6a
69118 Heidelberg
Tel: +49 6221 890 168-0
Fax: +49 6221 890 168-1
Mobil: +49 176 2234 1338
felix@gg-media.biz
http://www.gg-media.biz
Vertretungsberechtigte Gesellschafter:
Felix Gonschorek & Jochen Greiner
Umsatzsteuer-Identifikationsnummer
gemäß § 27a Umsatzsteuergesetz:
DE232906440
Re: [Trinidad] PPR and Dialog
Posted by Adam Winer <aw...@gmail.com>.
Definitely not intended. I rarely test with server state
saving - I'll have to have a look.
-- Adam
On 6/14/07, Felix Gonschorek <fe...@gg-media.biz> wrote:
> Hi,
>
> this topic helped me, since i could find out, that partially updating a
> component after dialog return is possible.
>
> but:
>
> returnListener="${backingBean.returnFromDialog}"
> (void returnFromDialog(ReturnEvent e))
>
> does only get called, when i use javax.faces.STATE_SAVING_METHOD=client
> when i activate serverside state saving, the returnListener method in my
> backing bean is not called. is that intended? trinidad 1.0.1-SNAPSHOT
>
> thx & regards
> felix
>
> Srinath K schrieb:
> > Sorry for a Wrong tip. viewRoot doesn't render anything and hence it
> > cannot be added as a partial target. One simple solution could be wrap
> > all your contents with a panelGrouplayout component and add it to the
> > partial target.
> > You can use the binding attribute to get the instance of the
> > panelGroupLayout or any other component in your managed bean
> >
> > <tr:panelGroupLayout binding="#{DialogMB.panel}">
> > ..
> > </tr:panelGroupLayout>
> >
> > in your managed bean
> >
> > CorePanelGroupLayout panel; and a getter and setter for the same.
> >
> > -Thanks,
> > Srinath K
> >
> >
> >
> > On 5/2/07, *Luka Surija * <luka.surija@iytim.hr
> > <ma...@iytim.hr>> wrote:
> >
> > Hi,
> > tnx for the tip, but it doesn't work.
> >
> > here is my code:
> >
> > --- Managed bean "DialogMB"----
> > public void returnContactDetail(ReturnEvent event){
> >
> > RequestContext.getCurrentInstance
> > ().addPartialTarget(FacesContext.getCurrentInstance().getViewRoot());
> > }
> >
> >
> > --- Close button on Dialog ----
> > public void closeContactDetail(ActionEvent event){
> > RequestContext.getCurrentInstance
> > ().returnFromDialog(null,null);
> > }
> >
> > --- JSF code ---
> > <tr:commandLink text="details" action="#{DialogMB.contactDetail}"
> > useWindow="true" returnListener="#{DialogMB.returnContactDetail }" />
> >
> >
> > after closing the Dialog the page is not refreshed and in server log I
> > get this exception:
> >
> > ava.lang.NullPointerException
> > at
> > org.apache.myfaces.trinidadinternal.context.RequestContextImpl._getNearestPPRTarget
> > (RequestContextImpl.java:697)
> > at
> > org.apache.myfaces.trinidadinternal.context.RequestContextImpl.addPartialTarget(RequestContextImpl.java:448)
> > at
> > com.iytim.yachtpool.web.DialogMB.returnContactDetail (DialogMB.java:45)
> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > at
> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> > at
> > sun.reflect.DelegatingMethodAccessorImpl.invoke
> > (DelegatingMethodAccessorImpl.java:25)
> > at java.lang.reflect.Method.invoke(Method.java:585)
> > at com.sun.el.parser.AstValue.invoke(AstValue.java:157)
> > at
> > com.sun.el.MethodExpressionImpl.invoke (MethodExpressionImpl.java:283)
> > at
> > com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
> > at
> > com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69)
> > at
> > org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1183)
> > at
> > org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:162)
> > at
> > org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:110)
> > at
> > org.apache.myfaces.trinidad.component.UIXTable.broadcast(UIXTable.java:190)
> > at
> > javax.faces.component.UIViewRoot.broadcastEvents (UIViewRoot.java:448)
> > at
> > javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:752)
> > at
> > com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
> > at
> > com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:248)
> > at
> > com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
> > at javax.faces.webapp.FacesServlet.service(FacesServlet.java
> > :244)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:398)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java
> > :304)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
> > at
> > org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java
> > :326)
> > at
> > org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:290)
> > at
> > org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java
> > :213)
> > at
> > org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:90)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:217)
> > at
> > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185)
> > at
> > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
> > at
> > org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:255)
> > at
> > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke
> > (StandardPipeline.java:611)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
> > at
> > com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:81)
> > at
> > org.apache.catalina.core.StandardHostValve.invoke
> > (StandardHostValve.java:207)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
> > at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
> > at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
> > at
> > org.apache.catalina.core.StandardEngineValve.invoke
> > (StandardEngineValve.java:137)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:611)
> > at
> > org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:564)
> > at
> > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:558)
> > at
> > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1067)
> > at
> > org.apache.coyote.tomcat5.CoyoteAdapter.service (CoyoteAdapter.java:249)
> > at
> > com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:618)
> > at
> > com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess
> > (DefaultProcessorTask.java:549)
> > at
> > com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:790)
> > at
> > com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask
> > (DefaultReadTask.java:326)
> > at
> > com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:248)
> > at
> > com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java
> > :199)
> > at
> > com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
> > at
> > com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:93)
> > ---
> >
> >
> > It looks like FacesContext.getCurrentInstance.getViewRoot() returns
> > null?!!
> >
> > The same thing happend if I want to partial update anything using
> > actionListener. For example:
> >
> > public void changePremiums(ValueChangeEvent event){
> >
> > RequestContext.getCurrentInstance().addPartialTarget(event.getComponent().findComponent("someComponent"));
> > } <-- this code works on changeListener
> >
> > public void changePremiums(ActionEvent event){
> >
> > RequestContext.getCurrentInstance().addPartialTarget(event.getComponent().findComponent("someComponent"));
> > } <== but here I get the same exception if I want
> > to refresh something pressing commanButton
> >
> > Is this a bug or some feature that I don't understand?!
> >
> > Best regards
> > Luka
> >
> >
> >
> > Srinath Reddy Komatireddy wrote:
> > > Try adding the viewroot to the partialTargets in your
> > returnListener by
> > >
> > > RequestContext.getCurrentInstance().addPartialTarget(viewRoot);
> > >
> > > -Thanks,
> > > Srinath K.
> > >
> > > On 5/2/07, *Luka Surija* <luka.surija@iytim.hr
> > <ma...@iytim.hr>
> > > <mailto:luka.surija@iytim.hr <ma...@iytim.hr>>> wrote:
> > >
> > > How to partialy refresh a page after returning from a Dialog
> > (called
> > > from tr:commandLink )?
> > >
> > > Regards
> > >
> > > --
> > > Luka Surija
> > > luka.surija@iytim.hr <ma...@iytim.hr>
> > <mailto:luka.surija@iytim.hr <ma...@iytim.hr> >
> > > +385 98 434 061
> > >
> > > I.Y. tim d.o.o.
> > > www.iytim.hr <http://www.iytim.hr> <http://www.iytim.hr>
> > > info@iytim.hr <ma...@iytim.hr> <mailto:info@iytim.hr
> > <ma...@iytim.hr>>
> > >
> > >
> >
> >
>
> --
> Felix Gonschorek
> GG-Media
>
> Rombachweg 6a
> 69118 Heidelberg
>
> Tel: +49 6221 890 168-0
> Fax: +49 6221 890 168-1
> Mobil: +49 176 2234 1338
>
> felix@gg-media.biz
> http://www.gg-media.biz
>
> Vertretungsberechtigte Gesellschafter:
> Felix Gonschorek & Jochen Greiner
>
> Umsatzsteuer-Identifikationsnummer
> gemäß § 27a Umsatzsteuergesetz:
> DE232906440
>