Hello Luka,
The action event and the value change event don't happen on the same
component, therefore they are not at the same place in the tree (obviously).
However, a side effect of that is that one of them might be in a
NamingContainer which alter its id by adding a prefix to it. See
http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/api/javax/faces/component/UIComponent.html#findComponent(java.lang.String)for
the complete algorithm used in find.
Regards,
~ Simon
On 5/2/07, Luka Surija <[EMAIL PROTECTED]> wrote:
Hi Srinath ,
tnx for the tip. It works. Thanx again.
Still I don't understand why
event.getComponent.findComponent("someID") works under ValueChangeEvent,
but under ActionEvent it returns null.
Luka
Srinath K wrote:
> 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 * <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> 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* <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
> > <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>>>
wrote:
> >
> > How to partialy refresh a page after returning from a Dialog
> (called
> > from tr:commandLink )?
> >
> > Regards
> >
> > --
> > Luka Surija
> > [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
> <mailto:[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> >
> > +385 98 434 061
> >
> > I.Y. tim d.o.o.
> > www.iytim.hr <http://www.iytim.hr> <http://www.iytim.hr>
> > [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> <mailto:[EMAIL
PROTECTED]
> <mailto:[EMAIL PROTECTED]>>
> >
> >
>
>