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]>> wrote:
How to partialy refresh a page after returning from a Dialog (called
from tr:commandLink )?
Regards
--
Luka Surija
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
+385 98 434 061
I.Y. tim d.o.o.
www.iytim.hr <http://www.iytim.hr>
[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>