Author: mrdon Date: Sun Nov 27 11:21:13 2005 New Revision: 349281 URL: http://svn.apache.org/viewcvs?rev=349281&view=rev Log: Fixed template example, modified other guess examples to only create continuations when necessary
Modified: struts/flow/trunk/src/examples/WEB-INF/guess/numberguess.js struts/flow/trunk/src/examples/WEB-INF/remote/numberguess.js struts/flow/trunk/src/examples/WEB-INF/templates/guess.jt struts/flow/trunk/src/examples/WEB-INF/templates/numberguess.js Modified: struts/flow/trunk/src/examples/WEB-INF/guess/numberguess.js URL: http://svn.apache.org/viewcvs/struts/flow/trunk/src/examples/WEB-INF/guess/numberguess.js?rev=349281&r1=349280&r2=349281&view=diff ============================================================================== --- struts/flow/trunk/src/examples/WEB-INF/guess/numberguess.js (original) +++ struts/flow/trunk/src/examples/WEB-INF/guess/numberguess.js Sun Nov 27 11:21:13 2005 @@ -30,7 +30,7 @@ } // send success page to user - flow.forwardAndWait("success", + flow.forward("success", {"random" : random, "guess" : guess, "guesses" : guesses} ); Modified: struts/flow/trunk/src/examples/WEB-INF/remote/numberguess.js URL: http://svn.apache.org/viewcvs/struts/flow/trunk/src/examples/WEB-INF/remote/numberguess.js?rev=349281&r1=349280&r2=349281&view=diff ============================================================================== --- struts/flow/trunk/src/examples/WEB-INF/remote/numberguess.js (original) +++ struts/flow/trunk/src/examples/WEB-INF/remote/numberguess.js Sun Nov 27 11:21:13 2005 @@ -13,8 +13,7 @@ // can be called remotely. flow.forwardAndWait("failure", { "hint" : hint, - "guesses" : guesses}, - ["cheat"]); + "guesses" : guesses}); print("processing a user guess "+struts.param.guess); // process user's guess @@ -35,7 +34,7 @@ } // send success page to user - flow.forwardAndWait("success", + flow.forward("success", {"random" : random, "guess" : guess, "guesses" : guesses} ); Modified: struts/flow/trunk/src/examples/WEB-INF/templates/guess.jt URL: http://svn.apache.org/viewcvs/struts/flow/trunk/src/examples/WEB-INF/templates/guess.jt?rev=349281&r1=349280&r2=349281&view=diff ============================================================================== --- struts/flow/trunk/src/examples/WEB-INF/templates/guess.jt (original) +++ struts/flow/trunk/src/examples/WEB-INF/templates/guess.jt Sun Nov 27 11:21:13 2005 @@ -4,25 +4,28 @@ <title>Struts Flow number guessing game</title> <script type="text/javascript"> <!-- -function init() { - this.contid = "${contid}"; - this.client = new ClientFlow("guess.do"); -} function cheat() { hint = document.getElementById("hint"); - result = client.call("cheat", contid); - req = client.xmlHTTPRequestObject(); - if (req) { - req.open ("GET", "cheat.jt", false); - req.send (json); - hint.innerHTML = req.responseText.process(result); - } - contid = result.contid; + + dojo.io.bind({ + url: "guess.do?FlowCall=cheat", + type: "text/javascript", + load: function(type, data, evt) { + eval("data = "+data); + dojo.io.bind({ + url: "cheat.jt", + type: "text/plain", + load: function(type, temp, evt) { + hint.innerHTML = temp.process(data); + } + }); + } + }); } --> </script> - <script type="text/javascript" src="clientFlow.js" /> - <script type="text/javascript" src="template.js" /> + <script type="text/javascript" src="../remote/dojo-io.js"></script> + <script type="text/javascript" src="template.js"></script> </head> <body onload="init()"> Modified: struts/flow/trunk/src/examples/WEB-INF/templates/numberguess.js URL: http://svn.apache.org/viewcvs/struts/flow/trunk/src/examples/WEB-INF/templates/numberguess.js?rev=349281&r1=349280&r2=349281&view=diff ============================================================================== --- struts/flow/trunk/src/examples/WEB-INF/templates/numberguess.js (original) +++ struts/flow/trunk/src/examples/WEB-INF/templates/numberguess.js Sun Nov 27 11:21:13 2005 @@ -13,10 +13,9 @@ // send guess page to user and wait for response. Specify only cheat() // can be called remotely. - forwardAndWait("guess", + renderTemplateAndWait("guess", { "hint" : hint, - "guesses" : guesses}, - ["cheat"]); + "guesses" : guesses}); // process user's guess var guess = parseInt( struts.param.guess ); @@ -36,7 +35,7 @@ } // send success page to user - forwardAndWait("success", + renderTemplate("success", {"random" : random, "guess" : guess, "guesses" : guesses} ); @@ -47,37 +46,24 @@ return {"secret":random, "guesses":guesses}; } -// This function intercepts the forward back to Struts and renders the content -// directly using Javascript Templates -function renderTemplate(page, bizdata) { - // if rpc call, use old forward, otherwise use template - if (page == "n/a") { - return _oldForwardAndWait(page, bizdata); - } else { - var k = new Continuation(); - - // Use default ttl value from continuation manager - var timeToLive = 0; - var kont = new WebContinuation(flow, k, lastContinuation, timeToLive); - - bizdata.contid = kont.id; - res = flow.context.response; - stream = struts.servletContext.getResourceAsStream("/WEB-INF/templates/"+page+".jt"); - if (stream != null) { - text = new String(stream.getText()); - html = text.process(bizdata); - res.writer.print(html); - res.writer.close(); - } else { - res.sendError(res.SC_INTERNAL_SERVER_ERROR, "Unable to find page "+page); - } - - suicide(); - return kont; - } +// This function renders the content directly using Javascript Templates +function renderTemplateAndWait(page, bizdata, ttl) { + var cont = new FOM_WebContinuation(new Continuation(), flow.continuation, ttl); + bizdata.contid = cont.id; + renderTemplate(page, bizdata); + flow.forward(null, bizdata, cont); + FOM_Flow.suicide(); } -// Replace old forward method with ours, but keep a reference to it so we can -// call it for remote flow responses -this._oldForwardAndWait = _forwardAndWait; -this._forwardAndWait = renderTemplate; +function renderTemplate(page, bizdata) { + var res = flow.context.response; + var stream = struts.servletContext.getResourceAsStream("/WEB-INF/templates/"+page+".jt"); + if (stream != null) { + var text = new String(stream.getText()); + var html = text.process(bizdata); + res.writer.print(html); + res.writer.close(); + } else { + res.sendError(res.SC_INTERNAL_SERVER_ERROR, "Unable to find page "+page); + } +} --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]