Hi,

I have a template wich look like this one :

...
<t:grid source="clients" row="client">
   <t:parameter name="nameCell">
<t:actionlink t:id="clientLink" context="client.id" zone="clientZone">${client.name}</t:actionlink>
   </t:parameter>
</t:grid>
<t:zone t:id="clientZone"/>
<t:block t:id="clientBlock">
   <t:grid source="selectedClient.mailingsList" row="mailing">
   <t:parameter name="titleCell">
<t:actionlink t:id="mailingLink" context="mailing.id" zone="mailingZone">${mailing.title}</t:actionlink>
   </t:parameter>
   </t:grid>
   <t:zone t:id="mailingZone"/>
</t:block>
<t:block t:id="mailingBlock">
   <t:beandisplay object="selectedMailing"/>
</t:block>
...

and the associated code :

public class Clients {

   @Inject    @Service("mailingServices")
   private IMailingServices mailingServices;

   @Inject
   private Block clientBlock;
   @Inject
   private Block mailingBlock;

   @Property
   private Client client;
   @Property
   private Mailing mailing;
@Property @Persist
   private Client selectedClient;
   @Property @Persist
   private Mailing selectedMailing;

   @OnEvent(component="clientLink", value="action")
   private Block actionFromClientLink(Long id) {
       selectedClient = mailingServices.loadClient(id);
       return clientBlock;
   }

   @OnEvent(component="mailingLink", value="action")
   private Block actionFromMailingLink(Long id) {
       selectedMailing = mailingServices.loadMailing(id);
       return mailingBlock;
   }

}

and i get the exception :

[ERROR] RequestExceptionHandler Processing of request failed with uncaught exception: A component event handler method returned the value [EMAIL PROTECTED] Return type org.apache.tapestry.internal.structure.BlockImpl can not be handled. Configured return types are java.lang.Class, java.lang.String, java.net.URL, org.apache.tapestry.Link, org.apache.tapestry.StreamResponse, org.apache.tapestry.runtime.Component. org.apache.tapestry.runtime.ComponentEventException: A component event handler method returned the value [EMAIL PROTECTED] Return type org.apache.tapestry.internal.structure.BlockImpl can not be handled. Configured return types are java.lang.Class, java.lang.String, java.net.URL, org.apache.tapestry.Link, org.apache.tapestry.StreamResponse, org.apache.tapestry.runtime.Component. [at classpath:com/cariboonetworks/mailings/pages/Clients.tml, line 32, column 79] at org.apache.tapestry.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1041) at org.apache.tapestry.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:67) at org.apache.tapestry.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42) at $ComponentEventRequestHandler_119e2541c7f.handle($ComponentEventRequestHandler_119e2541c7f.java) at org.apache.tapestry.internal.services.AjaxFilter.handle(AjaxFilter.java:42) at $ComponentEventRequestHandler_119e2541c7f.handle($ComponentEventRequestHandler_119e2541c7f.java) at org.apache.tapestry.services.TapestryModule$37.handle(TapestryModule.java:1988) at $ComponentEventRequestHandler_119e2541c7f.handle($ComponentEventRequestHandler_119e2541c7f.java) at $ComponentEventRequestHandler_119e2541bea.handle($ComponentEventRequestHandler_119e2541bea.java) at org.apache.tapestry.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:135)
   at $Dispatcher_119e2541bed.dispatch($Dispatcher_119e2541bed.java)
   at $Dispatcher_119e2541bdf.dispatch($Dispatcher_119e2541bdf.java)
at org.apache.tapestry.services.TapestryModule$12.service(TapestryModule.java:939) at org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:42)
   at $RequestHandler_119e2541be0.service($RequestHandler_119e2541be0.java)
at org.apache.tapestry.services.TapestryModule$2.service(TapestryModule.java:588)
   at $RequestHandler_119e2541be0.service($RequestHandler_119e2541be0.java)
at org.apache.tapestry.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:25)
   at $RequestHandler_119e2541be0.service($RequestHandler_119e2541be0.java)
at org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79)
   at $RequestHandler_119e2541be0.service($RequestHandler_119e2541be0.java)
at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93) at org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84) at org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:75) at org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106)
   at $RequestHandler_119e2541be0.service($RequestHandler_119e2541be0.java)
   at $RequestHandler_119e2541bd8.service($RequestHandler_119e2541bd8.java)
at org.apache.tapestry.services.TapestryModule$11.service(TapestryModule.java:919) at org.apache.tapestry.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) at $HttpServletRequestFilter_119e2541bd7.service($HttpServletRequestFilter_119e2541bd7.java) at $HttpServletRequestHandler_119e2541bd9.service($HttpServletRequestHandler_119e2541bd9.java) at $HttpServletRequestHandler_119e2541bd6.service($HttpServletRequestHandler_119e2541bd6.java)
   at org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:168)
at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75) at org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:821) at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:471) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
   at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:633)
   at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
   at org.mortbay.http.HttpServer.service(HttpServer.java:909)
   at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
   at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
   at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
   at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
   at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)

If i move my zone 'mailingZone' outside from the clientBlock, everything works fine ... Is there a way to implement "dependent" zones (i mean zone inside zone inside zone ...) ?

Thanks in advance.

Stephane

Reply via email to