Better yet: Tapestry could be so smart that it would return null even if the handler returns block if the request is not ajax.
if(return_value == block && is_not_xhdr){ block = null; } That wouldn't break anything? -99 Lance Java wrote: > > Could returning null be built in as default behaviour? Since returning a > block from a non-xhr request is an error case, it would save putting > checks > throughout the code and I can't see it breaking anything. > > Cheers, > Lance. > > 2008/6/24 Howard Lewis Ship <[EMAIL PROTECTED]>: > >> For full graceful degradation, you can inject the Request object can >> check its isXHR() method, then decide on an appropriate return value >> (typically, a Block or null). >> >> On Tue, Jun 24, 2008 at 9:24 AM, Lance Java <[EMAIL PROTECTED]> >> wrote: >> > I have solved the issue, I think I understand what was going wrong. >> > - Tapestry first draws action links as hrefs which cause a page reload >> for >> > graceful degredation >> > - Tapestry javascript magic then goes over all ajax action links and >> changes >> > them to javascript method calls >> > - I had a javascript error which stopped the tapestry javascript magic >> from >> > hapening, thus I was seeing the graceful degredation, thus no XHR's >> > >> > Cheers, >> > Lance. >> > >> > 2008/6/24 Francisco Manzano <[EMAIL PROTECTED]>: >> > >> >> Hi, I am inexperienced in Tapestry, but I had east problem recently: >> >> You have like result a valid xhtml page? You can look for if you have >> >> "scripts of tapestry" inserted at the end of the page. >> >> something like this : >> >> ... >> >> <script src="../../assets/scriptaculous/5.0.13/prototype.js" >> >> type="text/javascript"></script> >> >> <script src="../../assets/scriptaculous/5.0.13/scriptaculous.js" >> >> type="text/javascript"></script> >> >> <script src="../../assets/scriptaculous/5.0.13/effects.js" >> >> type="text/javascript"></script> >> >> <script src="../../assets/tapestry/5.0.13/tapestry.js" >> >> type="text/javascript"></script> >> >> <script type="text/javascript"> >> >> <!-- >> >> Tapestry.DEBUG_ENABLED = true; >> >> Tapestry.onDOMLoaded(function() { >> >> >> >> >> Tapestry.init({"zone":["zoneToUpdate"],"linkZone":[["theLink4","zoneToUpdate"],["theForm","zoneToUpdate"]]}); >> >> }); >> >> // --> >> >> </script> >> >> </body> >> >> </html> >> >> >> >> If these scripts are not, you can have this problem., and you can >> solve >> it >> >> obtaining a valid xhtml like result. >> >> >> >> I hope can help you >> >> >> >> & >> >> DiPegotDeis >> >> >> >> >> >> >> >> >> >> Lance Java wrote: >> >> >> >>> I have an actionlink that returns a block and populates a zone in my >> page >> >>> >> >>> FundGraph.tml >> >>> <t:actionLink t:id="edit" zone="editZone">edit</t:actionLink> >> >>> >> >>> <t:block t:id="editorBlock">...</t:block> >> >>> >> >>> <t:zone t:id="editZone"> >> >>> </t:zone> >> >>> >> >>> >> >>> FundGraph.java >> >>> @Inject >> >>> private Block editorBlock; >> >>> >> >>> @OnEvent(value="action", component="edit") >> >>> protected Object onActionFromEdit() { >> >>> return editorBlock; >> >>> } >> >>> >> >>> In Firefox, this works fine. In IE, I get the following error: >> >>> A component event handler method returned the value >> >>> [EMAIL PROTECTED] Return type >> >>> org.apache.tapestry5.internal.structure.BlockImpl can not be handled. >> >>> Configured return types are java.lang.Class, java.lang.String, >> >>> java.net.URL, >> >>> org.apache.tapestry5.Link, org.apache.tapestry5.StreamResponse, >> >>> org.apache.tapestry5.runtime.Component. >> >>> >> >>> I have looked at previous posts on this list and it seems that this >> is >> >>> because request.isXHR() is false. What can I do to fix this in IE? I >> >>> thought >> >>> that XHR should be true in this case? >> >>> >> >>> I am using tapestry 5.0.13 and IE 6.0 >> >>> >> >>> Full stack trace: >> >>> %d 192408 ERROR >> >>> >> [org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler] >> >>> (http-127.0.0.1-8080-2:) Processing of request failed with uncaught >> >>> exception: A component event handler method returned the value >> >>> [EMAIL PROTECTED] Return type >> >>> org.apache.tapestry5.internal.structure.BlockImpl can not be >> >>> handled. Configured return types are java.lang.Class, >> java.lang.String, >> >>> java.net.URL, org.apache.tapestry5.Link, >> >>> org.apache.tapestry5.StreamResponse, >> >>> org.apache.tapestry5.runtime.Component. >> >>> org.apache.tapestry5.runtime.ComponentEventException: A component >> event >> >>> handler method returned the value >> >>> [EMAIL PROTECTED] Return type >> >>> org.apache.tapestry5.internal.structure.BlockImpl can not be >> >>> handled. Configured return types are java.lang.Class, >> java.lang.String, >> >>> java.net.URL, org.apache.tapestry5.Link, >> >>> org.apache.tapestry5.StreamResponse, >> >>> org.apache.tapestry5.runtime.Component. >> >>> [at >> >>> >> classpath:com/bglobal/isharesnet/tapestry/components/fund/FundGraph.tml, >> >>> line 2, column 44] >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1042) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.services.ComponentEventRequestHandlerImpl.handle(ComponentEventRequestHandlerImpl.java:67) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.services.ImmediateActionRenderResponseFilter.handle(ImmediateActionRenderResponseFilter.java:42) >> >>> at >> >>> >> >>> >> $ComponentEventRequestHandler_11abad25fdc.handle($ComponentEventRequestHandler_11abad25fdc.java) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.services.AjaxFilter.handle(AjaxFilter.java:42) >> >>> at >> >>> >> >>> >> $ComponentEventRequestHandler_11abad25fdc.handle($ComponentEventRequestHandler_11abad25fdc.java) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.services.TapestryModule$37.handle(TapestryModule.java:1987) >> >>> at >> >>> >> >>> >> $ComponentEventRequestHandler_11abad25fdc.handle($ComponentEventRequestHandler_11abad25fdc.java) >> >>> at >> >>> >> >>> >> $ComponentEventRequestHandler_11abad25f81.handle($ComponentEventRequestHandler_11abad25f81.java) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.services.ComponentEventDispatcher.dispatch(ComponentEventDispatcher.java:135) >> >>> at $Dispatcher_11abad25f84.dispatch($Dispatcher_11abad25f84.java) >> >>> at $Dispatcher_11abad25f76.dispatch($Dispatcher_11abad25f76.java) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.services.TapestryModule$12.service(TapestryModule.java:938) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.services.LocalizationFilter.service(LocalizationFilter.java:42) >> >>> at >> $RequestHandler_11abad25f77.service($RequestHandler_11abad25f77.java) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:586) >> >>> at >> $RequestHandler_11abad25f77.service($RequestHandler_11abad25f77.java) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) >> >>> at >> $RequestHandler_11abad25f77.service($RequestHandler_11abad25f77.java) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:79) >> >>> at >> $RequestHandler_11abad25f77.service($RequestHandler_11abad25f77.java) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:93) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:84) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:75) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:106) >> >>> at >> $RequestHandler_11abad25f77.service($RequestHandler_11abad25f77.java) >> >>> at >> $RequestHandler_11abad25f6f.service($RequestHandler_11abad25f6f.java) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.services.TapestryModule$11.service(TapestryModule.java:918) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) >> >>> at >> >>> >> >>> >> $HttpServletRequestFilter_11abad25f6e.service($HttpServletRequestFilter_11abad25f6e.java) >> >>> at >> >>> >> >>> >> $HttpServletRequestHandler_11abad25f70.service($HttpServletRequestHandler_11abad25f70.java) >> >>> at >> >>> >> >>> >> $HttpServletRequestHandler_11abad25f6d.service($HttpServletRequestHandler_11abad25f6d.java) >> >>> at >> org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:168) >> >>> at >> >>> >> >>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >> >>> at >> >>> >> >>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> >>> at >> >>> >> >>> >> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) >> >>> at >> >>> >> >>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >> >>> at >> >>> >> >>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> >>> at >> >>> >> >>> >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) >> >>> at >> >>> >> >>> >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) >> >>> at >> >>> >> >>> >> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179) >> >>> at >> >>> >> >>> >> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84) >> >>> at >> >>> >> >>> >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) >> >>> at >> >>> >> >>> >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >> >>> at >> >>> >> >>> >> org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157) >> >>> at >> >>> >> >>> >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >> >>> at >> >>> >> >>> >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262) >> >>> at >> >>> >> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) >> >>> at >> >>> >> >>> >> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) >> >>> at >> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446) >> >>> at java.lang.Thread.run(Thread.java:619) >> >>> Caused by: java.lang.RuntimeException: A component event handler >> method >> >>> returned the value >> >>> [EMAIL PROTECTED] type >> >>> org.apache.tapestry5.internal.structure.BlockImpl can not be >> >>> handled. Configured return types are java.lang.Class, >> java.lang.String, >> >>> java.net.URL, org.apache.tapestry5.Link, >> >>> org.apache.tapestry5.StreamResponse, >> >>> org.apache.tapestry5.runtime.Component. >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.services.ObjectComponentEventResultProcessor.processResultValue(ObjectComponentEventResultProcessor.java:39) >> >>> at >> >>> >> >>> >> $ComponentEventResultProcessor_11abad26009.processResultValue($ComponentEventResultProcessor_11abad26009.java) >> >>> at >> >>> >> >>> >> $ComponentEventResultProcessor_11abad25f87.processResultValue($ComponentEventResultProcessor_11abad25f87.java) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.services.ComponentResultProcessorWrapper.handleResult(ComponentResultProcessorWrapper.java:42) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$15.handleResult(ComponentPageElementImpl.java:1001) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.services.EventImpl.storeResult(EventImpl.java:56) >> >>> at >> >>> >> >>> >> com.bglobal.isharesnet.tapestry.components.fund.FundGraph.dispatchComponentEvent(FundGraph.java) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.dispatchEvent(ComponentPageElementImpl.java:864) >> >>> at >> >>> >> >>> >> org.apache.tapestry5.internal.structure.ComponentPageElementImpl.triggerContextEvent(ComponentPageElementImpl.java:1025) >> >>> ... 50 more >> >>> >> >>> >> >>> >> >> >> >> >> >> --------------------------------------------------------------------- >> >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> >> >> > >> >> >> >> -- >> Howard M. Lewis Ship >> >> Creator Apache Tapestry and Apache HiveMind >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > -- View this message in context: http://www.nabble.com/t5%3A-Returning-block-works-in-Firefox-but-not-in-IE-tp18091679p18113154.html Sent from the Tapestry - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]