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]

Reply via email to