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
>