Joshua,

here's a very simple example:

Template:

<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
<script type="text/javascript" src="${prototype}"></script>
<script type="text/javascript" src="${scriptaculous}"></script>
<body>

<script type="text/javascript">

        function handleResponse (xhrResponse)
        {
                alert (xhrResponse.responseText);
        }

        function asyncCall ()
        {
                new Ajax.Request ('${theLink}', {asynchronous:true,
onSuccess:handleResponse});
        }
</script>

<button onclick="asyncCall();">Do AJAX Call</button>

</body>
</html>

Class:
public class AjaxPage
{
        @Inject
        private ComponentResources _resources;
        
        @Inject
        @Path("${tapestry.scriptaculous}/prototype.js")
        private Asset _prototype;
        
        @Inject
        @Path("${tapestry.scriptaculous}/scriptaculous.js")
        private Asset _scriptaculous;
        
        /**
         * Generates a URI to the server-side function for the XHR
         * to use.
         *
         * @return the link
         */
        public String getTheLink ()
        {
                Link l = _resources.createActionLink ("myAction", false);
                return l.toURI();
        }
        
        /**
         * This is a server-side method called via XHR that returns
         * some text.
         *
         * @return some text
         */
        StreamResponse onMyAction ()
        {
                return new TextStreamResponse ("type/text", "Five bucks below 
the
belt.  That's how I roll.");
        }

        /**
         * @return the prototype
         */
        public Asset getPrototype ()
        {
                return _prototype;
        }

        /**
         * @param prototype the prototype to set
         */
        public void setPrototype (Asset prototype)
        {
                _prototype = prototype;
        }

        /**
         * @return the scriptaculous
         */
        public Asset getScriptaculous ()
        {
                return _scriptaculous;
        }

        /**
         * @param scriptaculous the scriptaculous to set
         */
        public void setScriptaculous (Asset scriptaculous)
        {
                _scriptaculous = scriptaculous;
        }

}




On 6/13/07, Joshua Jackson <[EMAIL PROTECTED]> wrote:
Hi Massimo

Thanks for the response. How do you exatcly implement the response?

What I assume is that you do something like this:
        public StreamResponse onAction(){
                return new TextStreamResponse("text/xml", "<employees><employee
name=\"joshua\" /></employees>");
        }

And then process it with prototype inside your html page?

Or do you have any other approach for this?

Thanks in advance

On 6/13/07, Massimo Lusetti <[EMAIL PROTECTED]> wrote:

> I'm eager to see this implemented but i could say that right now with
> StreamResponse is fairly easy to accomplish this. Thanks to the T5
> flexibility.

--
Let's create a highly maintainable and efficient code

YM!: thejavafreak
Blog: http://www.nagasakti.or.id/roller/joshua/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




--
"The future is here.  It's just not evenly distributed yet."

    -- Traditional

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to