Ajax和Grails for Dummies

时间:2012-07-18 22:15:59

标签: html css ajax grails web-applications

我是Grails的新手用户,我是AJAX的新手。我并没有完全理解AJAX的概念,而且在线资料是碎片化的。

根据我的理解,在grails中如果我想在我的一个控制器中执行一个方法,当我的HTML文档的一部分加载时,我可以简单地使用某些内容

<div onload="${remoteFunction(action:"foo", update:"foo"...)}" ...>
  1. 如何返回来自假设foo的调用的响应以及如何在js函数中访问它?
  2. 我可以从我假设的foo动作创建的类中返回一个对象吗?

1 个答案:

答案 0 :(得分:4)

在返回foo动作时,您可以将简单的html作为文本或渲染一些可在视图中使用的对象。

这里有关于“渲染”的所有信息

http://grails.org/doc/latest/ref/Controllers/render.html

您可以使用该数据更新并使用该数据。然后你可以像往常一样用javascript访问“foo”div里面的Html和数据。

例如:

Controller.groovy

// renders text to response
render '<div id="bar" onclick="alert($('bar').val())>some text</div>'

View.gsp

//Makes the call and updates foo
<div onload="${remoteFunction(action:"foo", update:"foo"...)}" ...>
<div id="foo" name="foo"></div>

输出

<div onload="theAjaxJavascriptFunctionThatGrailsWillInject" ...>
<div id="foo" name="foo">
    <div id="bar" onclick="alert($('bar').val())">some text</div>
</div>

我从Controller.grooy返回一些对象然后你必须在你的View.gsp

中对待它
//Makes the call and updates foo
<div onload="${remoteFunction(action:"foo", update:"foo"...)}" ...>
<div id="foo" name="foo">
    ${myObject.theValueIWant}
</div>

我添加了一个javascript提醒,但您可以按照自己喜欢的方式进行操作,有很多方法可以做到。

希望有所帮助:)