If you want to make an ajax call from your own javascript you can do the
following (T5.1). In this example we just stick the value you want to
cache in an @Persist'd field. 

In your page/component .java:

@Persist
private String valueToStore;

public StreamResponse onYourEventName(String valueToStore) {
   this.valueToStore = valueToStore;
   return new StreamResponse("text", valueToStore + " was persisted";
}

Now your javascript just needs to make a normal ajax GET request to: 

/yourpage:youreventname/valueToStore

which in this case will (hopefully) just return the confirmation
message. You can also use JSONObject to construct json arrays to return
as well if you want to update any data on your page.

You can use ComponentResources to create event links too which can be
added to your .tml and read by javascript if you wish:

public String getMyEventLink() {
   String context = ...;
   Link l = componentResources.createEventLink("YourEvent", context);
   return l.toString();
}

... ${myEventLink} ...

Hope that helps,

Richard.



-----Original Message-----
From: Thiago H. de Paula Figueiredo <thiag...@gmail.com>
Reply-to: "Tapestry users" <users@tapestry.apache.org>
To: Tapestry users <users@tapestry.apache.org>
Subject: Re: Calling the Tapestry server from plain Javascript
Date: Wed, 08 Dec 2010 21:07:51 -0200

On Wed, 08 Dec 2010 20:55:27 -0200, Tim Koop <t...@timkoop.com> wrote:

> I have a pile of Javascript on my page (it's a component really), and  
> sometimes it comes up with a value it needs to store on the server (in a  
> SessionState or something).  Can someone please tell me the best way to  
> call the server from plain Javascript?

Create an event and pass its URL (created from  
ComponentResources.createEventLink()) to your JavaScript code. Create a  
event handler method for it. Request it using normal AJAX code from the  
JavaScript side. If you need to return JSON, just return an JSONObject or  
JSONArray instance in the event handler method. This works for pages,  
componentes and mixins in the same way.




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

Reply via email to