I am creating a component which behaves like an ActionLink but is form aware in the sense that the form is submitted and then the actionlink is called.

It all works fine when I persist the link (building it in the render phase). But was hoping to not need the persit. Then again, it should not be too bad as it is using flash persistence.

Joachim

Joachim

Robert Zeigler wrote:
What is it you're trying to accomplish?

Robert

On Feb 20, 2008, at 2/202:31 PM , Joachim Van der Auwera wrote:

Indeed. Problem is that I don't need it until the button is clicked. Then in the onSelected() I build the "Link" to redirect to. It seems a bit backward (and waste of data in the session) if I have to build this link during render and persist it until the button is clicked (if it is).

Any ideas how to fix this?

THanks for the help,
Joachim

Robert Zeigler wrote:
getting a NPE trying to access the page's root element (page is null).
Page is obtained from the active page from the page render queue.
So, it looks like you're trying to create an action link while no page is rendering.
Cheers.

Robert

On Feb 20, 2008, at 2/202:03 PM , Joachim Van der Auwera wrote:

Does anybody have an idea what I am doing wrong?

Using the latest snapshot of tapestry5.

In the following code :

 @Inject
 private ComponentResources resources;

 /**
  * Act upon the "link"
  */
 void onSelected()
 {
Link link = resources.createActionLink( "action", false, contextArray );
 }

I get a NPE with the following stack trace

* org.apache.tapestry.internal.services.LinkFactoryImpl.collectActivationContextForPage(LinkFactoryImpl.java:217) * org.apache.tapestry.internal.services.LinkFactoryImpl.createActionLink(LinkFactoryImpl.java:129) * org.apache.tapestry.internal.structure.PageImpl.createActionLink(PageImpl.java:156) * org.apache.tapestry.internal.structure.InternalComponentResourcesImpl.createActionLink(InternalComponentResourcesImpl.java:123) * org.equanda.tapestry5.components.FormActionLink.onSelected(FormActionLink.java:64) * org.equanda.tapestry5.components.FormActionLink.dispatchComponentEvent(FormActionLink.java) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:843) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1004) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerEvent(ComponentPageElementImpl.java:934) * org.apache.tapestry.internal.structure.InternalComponentResourcesImpl.triggerEvent(InternalComponentResourcesImpl.java:154) * org.apache.tapestry.corelib.components.Submit$1.run(Submit.java:93) * org.apache.tapestry.corelib.internal.FormSupportImpl.executeDeferred(FormSupportImpl.java:114) * org.apache.tapestry.corelib.components.Form.onAction(Form.java:396) * org.apache.tapestry.corelib.components.Form.dispatchComponentEvent(Form.java) * org.equanda.tapestry5.components.Form.dispatchComponentEvent(Form.java) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:851) * org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1004) * org.apache.tapestry.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:67) * org.apache.tapestry.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42) * org.apache.tapestry.internal.services.AjaxFilter.handle(AjaxFilter.java:42) * org.apache.tapestry.services.TapestryModule$39.handle(TapestryModule.java:2077) * org.apache.tapestry.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:131) * org.apache.tapestry.services.TapestryModule$13.service(TapestryModule.java:914) * be.synergetics.ca.gui.services.AppModule$2.service(AppModule.java:175) * be.synergetics.ca.gui.services.AppModule$1.service(AppModule.java:102) * org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43) * org.apache.tapestry.services.TapestryModule$3.service(TapestryModule.java:530) * org.apache.tapestry.services.TapestryModule$2.service(TapestryModule.java:505) * org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79) * org.equanda.t5gui.services.AppModule$7.service(AppModule.java:175) * org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93) * org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84) * org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77) * org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106) * org.apache.tapestry.services.TapestryModule$12.service(TapestryModule.java:894) * org.apache.tapestry.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) * org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:164) * org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) * org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) * org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) * org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) * org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) * org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) * org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) * org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) * org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524) * org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) * org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) * org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) * org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) * org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) * org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) * org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) * org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) * org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
     * java.lang.Thread.run(Thread.java:595)


--
Joachim Van der Auwera
PROGS bvba, progs.be


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Joachim Van der Auwera
PROGS bvba, progs.be


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
Joachim Van der Auwera
PROGS bvba, progs.be


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to