On Tue, 10 Dec 2013 19:05:26 -0200, Javier Val Lista <javilan...@gmail.com> wrote:

This is what I was trying at first, catching the onchange event of the
select component by javascritp, and launch an ajax request to the server. The
problem is Tapestry does not recognize the "GET" url...

Tapestry does recognize GET URLs, but not any.

Do you know if Tapestry handles url with a different format?

No. It uses HTTP.

Here's an example, not tested:

@Inject
private ComponentResources resources;

@Inject
private RenderSupport renderSupport; // JavaScriptSupport from 5.2 on

@Inject
private Request request;

void afterRender() {
        // creates an URL for the 'myValueChanged' event
        Link link = resources.createEventLink("myValueChanged");
        // write a call to a JavaScript function
renderSupport.addScript("setMyValueChangedUrl('%s');"), link.toAbsoluteURI());
}

// handle the AJAX request.
Object onMyValueChanged() {
        String value = request.getParameter("value");
        // do whatever you want with value
        String newValue = ...;
        JSONObject object = new JSONObject();
        object.put("newValue", newValue);
        return object;
}

In a .js file included in the page and using Prototype.js, but it can be easily switched to jQuery if you're already using it:

var myValueChangedUrl = null;

function setMyValueChangedUrl(url) {
        myValueChangedUrl = url;
}

$('yourSelectId').observe('change', function(event) {

        // adding the value as a query parameter
var url = myValueChangedUrl + '?value=' + encodeUri($('yourSelectId').getValue());

        // do AJAX request
        new Ajax.Request(url, {
        
                // process response
                onSuccess: function(transport) {

// transport.responseJSON is the JSONObject returned in your event handler method
                        value response = transport.headerJSON;

                        // do something with the response
                        window.alert(response.newValue);
                }
        });
});

--
Thiago H. de Paula Figueiredo
Tapestry, Java and Hibernate consultant and developer
http://machina.com.br

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

Reply via email to