You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Andrew Court <an...@gmail.com> on 2008/04/27 23:06:40 UTC

Return page from ajax request

Hi all,

In T5, from an Ajax request, is it possible to redirect to a different page?

What I'm trying to do is something like below:

Object onSomeAjaxRequest(){

 if(some condition){
  exit xhttp and jump to a different page
 }
 else{
  return xhttp response to same page
 }

}

But this doesn't seem to work.

Thanks for any pointers,
Andrew
-- 
View this message in context: http://www.nabble.com/Return-page-from-ajax-request-tp16927742p16927742.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Return page from ajax request

Posted by Markus Joschko <ma...@gmail.com>.
Despite the workarounds I think it would be much nicer if tapestry
could handle this automatically and don't force the developer to think
about that.
I created an improvement request
https://issues.apache.org/jira/browse/TAPESTRY-2618



On Mon, Aug 25, 2008 at 2:31 AM, Jun Tsai <ju...@gmail.com> wrote:
> Object onAction(){
>    JSONObject response = new JSONObject();
>    response.put("script", "self.location='me';");
>    response.put("content", "redirect .....");
>
>    return response;
>
> }
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Return page from ajax request

Posted by Jun Tsai <ju...@gmail.com>.
Object onAction(){
    JSONObject response = new JSONObject();
    response.put("script", "self.location='me';");
    response.put("content", "redirect .....");

    return response;

}

Re: Return page from ajax request

Posted by Markus Joschko <ma...@gmail.com>.
@Sven, unfortunately this doesn't work but renders the page within the
zone that is updated.


On Sun, Aug 24, 2008 at 11:42 AM, Andrew Court <an...@gmail.com> wrote:
>
> Hi Markus,
>
> Actually no. I couldn't find any way to make a conditional redirect from an
> xhttp action method.
>
> My work around was to do the redirect on the client side based on the return
> value of the action method, but unfortunately this means two trips to the
> server.
>
> Let me know if you can find a solution.
>
> Andrew
>
>
>
>
> Markus Joschko wrote:
>>
>> Hi Andrew,
>> have you found the solution? I try the same but using the normal page
>> navigation patterns result into
>>
>>  Caused by: java.lang.RuntimeException: A component event handler
>> method returned the value profile/Profiles. Return type
>> java.lang.String can not be handled.  Configured return types are
>> org.apache.tapestry5.StreamResponse,
>> org.apache.tapestry5.json.JSONObject,
>> org.apache.tapestry5.runtime.Component,
>> org.apache.tapestry5.runtime.RenderCommand.
>>       at
>> org.apache.tapestry5.internal.services.ObjectComponentEventResultProcessor.processResultValue(ObjectComponentEventResultProcessor.java:39)
>>       at
>> $ComponentEventResultProcessor_11bf1136128.processResultValue($ComponentEventResultProcessor_11bf1136128.java)
>>       at
>> $ComponentEventResultProcessor_11bf1136126.processResultValue($ComponentEventResultProcessor_11bf1136126.java)
>>       at
>> org.apache.tapestry5.internal.services.ComponentResultProcessorWrapper.handleResult(ComponentResultProcessorWrapper.java:42)
>>       at
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$15.handleResult(ComponentPageElementImpl.java:1008)
>>       at
>> org.apache.tapestry5.internal.services.EventImpl.storeResult(EventImpl.java:67)
>>
>>
>> Thanks,
>>  Markus
>>
>>
>>
>> On Sun, Apr 27, 2008 at 11:06 PM, Andrew Court <an...@gmail.com>
>> wrote:
>>>
>>> Hi all,
>>>
>>> In T5, from an Ajax request, is it possible to redirect to a different
>>> page?
>>>
>>> What I'm trying to do is something like below:
>>>
>>> Object onSomeAjaxRequest(){
>>>
>>>  if(some condition){
>>>  exit xhttp and jump to a different page
>>>  }
>>>  else{
>>>  return xhttp response to same page
>>>  }
>>>
>>> }
>>>
>>> But this doesn't seem to work.
>>>
>>> Thanks for any pointers,
>>> Andrew
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Return-page-from-ajax-request-tp16927742p16927742.html
>>> Sent from the Tapestry - User mailing list archive at Nabble.com.
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>>> For additional commands, e-mail: users-help@tapestry.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/Return-page-from-ajax-request-tp16927742p19129107.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Return page from ajax request

Posted by Andrew Court <an...@gmail.com>.
Hi Markus,

Actually no. I couldn't find any way to make a conditional redirect from an
xhttp action method.

My work around was to do the redirect on the client side based on the return
value of the action method, but unfortunately this means two trips to the
server.

Let me know if you can find a solution.

Andrew




Markus Joschko wrote:
> 
> Hi Andrew,
> have you found the solution? I try the same but using the normal page
> navigation patterns result into
> 
>  Caused by: java.lang.RuntimeException: A component event handler
> method returned the value profile/Profiles. Return type
> java.lang.String can not be handled.  Configured return types are
> org.apache.tapestry5.StreamResponse,
> org.apache.tapestry5.json.JSONObject,
> org.apache.tapestry5.runtime.Component,
> org.apache.tapestry5.runtime.RenderCommand.
> 	at
> org.apache.tapestry5.internal.services.ObjectComponentEventResultProcessor.processResultValue(ObjectComponentEventResultProcessor.java:39)
> 	at
> $ComponentEventResultProcessor_11bf1136128.processResultValue($ComponentEventResultProcessor_11bf1136128.java)
> 	at
> $ComponentEventResultProcessor_11bf1136126.processResultValue($ComponentEventResultProcessor_11bf1136126.java)
> 	at
> org.apache.tapestry5.internal.services.ComponentResultProcessorWrapper.handleResult(ComponentResultProcessorWrapper.java:42)
> 	at
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$15.handleResult(ComponentPageElementImpl.java:1008)
> 	at
> org.apache.tapestry5.internal.services.EventImpl.storeResult(EventImpl.java:67)
> 
> 
> Thanks,
>  Markus
> 
> 
> 
> On Sun, Apr 27, 2008 at 11:06 PM, Andrew Court <an...@gmail.com>
> wrote:
>>
>> Hi all,
>>
>> In T5, from an Ajax request, is it possible to redirect to a different
>> page?
>>
>> What I'm trying to do is something like below:
>>
>> Object onSomeAjaxRequest(){
>>
>>  if(some condition){
>>  exit xhttp and jump to a different page
>>  }
>>  else{
>>  return xhttp response to same page
>>  }
>>
>> }
>>
>> But this doesn't seem to work.
>>
>> Thanks for any pointers,
>> Andrew
>> --
>> View this message in context:
>> http://www.nabble.com/Return-page-from-ajax-request-tp16927742p16927742.html
>> Sent from the Tapestry - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
> 
> 
> 

-- 
View this message in context: http://www.nabble.com/Return-page-from-ajax-request-tp16927742p19129107.html
Sent from the Tapestry - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Return page from ajax request

Posted by Howard Lewis Ship <hl...@gmail.com>.
That won't work for an Ajax request.  The interpretation of the event
handler method return value is different for Ajax requests than for
traditional requests.

Really, for page instances & etc., the Ajax handler should send (in
the JSON response) a special property to let the client redirect to
the new page.

Please add an issue about this and we'll see about getting it
implemented for the release candidate.

On Sat, Aug 23, 2008 at 2:27 PM, Sven Homburg <ho...@googlemail.com> wrote:
> this should work:
>
> class FirstPage
> {
>  @Inject
>  private OtherPage page
>
>  Object myListener()
>  {
>    return page;
>  }
> }
>
>
> 2008/8/23 Markus Joschko <ma...@gmail.com>
>
>> Hi Andrew,
>> have you found the solution? I try the same but using the normal page
>> navigation patterns result into
>>
>>  Caused by: java.lang.RuntimeException: A component event handler
>> method returned the value profile/Profiles. Return type
>> java.lang.String can not be handled.  Configured return types are
>> org.apache.tapestry5.StreamResponse,
>> org.apache.tapestry5.json.JSONObject,
>> org.apache.tapestry5.runtime.Component,
>> org.apache.tapestry5.runtime.RenderCommand.
>>        at
>> org.apache.tapestry5.internal.services.ObjectComponentEventResultProcessor.processResultValue(ObjectComponentEventResultProcessor.java:39)
>>        at
>> $ComponentEventResultProcessor_11bf1136128.processResultValue($ComponentEventResultProcessor_11bf1136128.java)
>>        at
>> $ComponentEventResultProcessor_11bf1136126.processResultValue($ComponentEventResultProcessor_11bf1136126.java)
>>        at
>> org.apache.tapestry5.internal.services.ComponentResultProcessorWrapper.handleResult(ComponentResultProcessorWrapper.java:42)
>>        at
>> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$15.handleResult(ComponentPageElementImpl.java:1008)
>>        at
>> org.apache.tapestry5.internal.services.EventImpl.storeResult(EventImpl.java:67)
>>
>>
>> Thanks,
>>  Markus
>>
>>
>>
>> On Sun, Apr 27, 2008 at 11:06 PM, Andrew Court <an...@gmail.com>
>> wrote:
>> >
>> > Hi all,
>> >
>> > In T5, from an Ajax request, is it possible to redirect to a different
>> page?
>> >
>> > What I'm trying to do is something like below:
>> >
>> > Object onSomeAjaxRequest(){
>> >
>> >  if(some condition){
>> >  exit xhttp and jump to a different page
>> >  }
>> >  else{
>> >  return xhttp response to same page
>> >  }
>> >
>> > }
>> >
>> > But this doesn't seem to work.
>> >
>> > Thanks for any pointers,
>> > Andrew
>> > --
>> > View this message in context:
>> http://www.nabble.com/Return-page-from-ajax-request-tp16927742p16927742.html
>> > Sent from the Tapestry - User mailing list archive at Nabble.com.
>> >
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> > For additional commands, e-mail: users-help@tapestry.apache.org
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
>> For additional commands, e-mail: users-help@tapestry.apache.org
>>
>>
>
>
> --
> with regards
> Sven Homburg
> http://www.chenillekit.org
> http://tapestry5-components.googlecode.com
>



-- 
Howard M. Lewis Ship

Creator Apache Tapestry and Apache HiveMind

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Return page from ajax request

Posted by Sven Homburg <ho...@googlemail.com>.
this should work:

class FirstPage
{
  @Inject
  private OtherPage page

  Object myListener()
  {
    return page;
  }
}


2008/8/23 Markus Joschko <ma...@gmail.com>

> Hi Andrew,
> have you found the solution? I try the same but using the normal page
> navigation patterns result into
>
>  Caused by: java.lang.RuntimeException: A component event handler
> method returned the value profile/Profiles. Return type
> java.lang.String can not be handled.  Configured return types are
> org.apache.tapestry5.StreamResponse,
> org.apache.tapestry5.json.JSONObject,
> org.apache.tapestry5.runtime.Component,
> org.apache.tapestry5.runtime.RenderCommand.
>        at
> org.apache.tapestry5.internal.services.ObjectComponentEventResultProcessor.processResultValue(ObjectComponentEventResultProcessor.java:39)
>        at
> $ComponentEventResultProcessor_11bf1136128.processResultValue($ComponentEventResultProcessor_11bf1136128.java)
>        at
> $ComponentEventResultProcessor_11bf1136126.processResultValue($ComponentEventResultProcessor_11bf1136126.java)
>        at
> org.apache.tapestry5.internal.services.ComponentResultProcessorWrapper.handleResult(ComponentResultProcessorWrapper.java:42)
>        at
> org.apache.tapestry5.internal.structure.ComponentPageElementImpl$15.handleResult(ComponentPageElementImpl.java:1008)
>        at
> org.apache.tapestry5.internal.services.EventImpl.storeResult(EventImpl.java:67)
>
>
> Thanks,
>  Markus
>
>
>
> On Sun, Apr 27, 2008 at 11:06 PM, Andrew Court <an...@gmail.com>
> wrote:
> >
> > Hi all,
> >
> > In T5, from an Ajax request, is it possible to redirect to a different
> page?
> >
> > What I'm trying to do is something like below:
> >
> > Object onSomeAjaxRequest(){
> >
> >  if(some condition){
> >  exit xhttp and jump to a different page
> >  }
> >  else{
> >  return xhttp response to same page
> >  }
> >
> > }
> >
> > But this doesn't seem to work.
> >
> > Thanks for any pointers,
> > Andrew
> > --
> > View this message in context:
> http://www.nabble.com/Return-page-from-ajax-request-tp16927742p16927742.html
> > Sent from the Tapestry - User mailing list archive at Nabble.com.
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> > For additional commands, e-mail: users-help@tapestry.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>


-- 
with regards
Sven Homburg
http://www.chenillekit.org
http://tapestry5-components.googlecode.com

Re: Return page from ajax request

Posted by Markus Joschko <ma...@gmail.com>.
Hi Andrew,
have you found the solution? I try the same but using the normal page
navigation patterns result into

 Caused by: java.lang.RuntimeException: A component event handler
method returned the value profile/Profiles. Return type
java.lang.String can not be handled.  Configured return types are
org.apache.tapestry5.StreamResponse,
org.apache.tapestry5.json.JSONObject,
org.apache.tapestry5.runtime.Component,
org.apache.tapestry5.runtime.RenderCommand.
	at org.apache.tapestry5.internal.services.ObjectComponentEventResultProcessor.processResultValue(ObjectComponentEventResultProcessor.java:39)
	at $ComponentEventResultProcessor_11bf1136128.processResultValue($ComponentEventResultProcessor_11bf1136128.java)
	at $ComponentEventResultProcessor_11bf1136126.processResultValue($ComponentEventResultProcessor_11bf1136126.java)
	at org.apache.tapestry5.internal.services.ComponentResultProcessorWrapper.handleResult(ComponentResultProcessorWrapper.java:42)
	at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$15.handleResult(ComponentPageElementImpl.java:1008)
	at org.apache.tapestry5.internal.services.EventImpl.storeResult(EventImpl.java:67)


Thanks,
 Markus



On Sun, Apr 27, 2008 at 11:06 PM, Andrew Court <an...@gmail.com> wrote:
>
> Hi all,
>
> In T5, from an Ajax request, is it possible to redirect to a different page?
>
> What I'm trying to do is something like below:
>
> Object onSomeAjaxRequest(){
>
>  if(some condition){
>  exit xhttp and jump to a different page
>  }
>  else{
>  return xhttp response to same page
>  }
>
> }
>
> But this doesn't seem to work.
>
> Thanks for any pointers,
> Andrew
> --
> View this message in context: http://www.nabble.com/Return-page-from-ajax-request-tp16927742p16927742.html
> Sent from the Tapestry - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
> For additional commands, e-mail: users-help@tapestry.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org