Grails / AJAX:使用g:submitToRemote更新页面中的任意区域

时间:2010-10-24 15:14:16

标签: ajax grails gsp

在GSP(Groovy服务器页面)中,我使用<g:submitToRemote update="...">在服务器端调用后更新<div>

根据标记的documentation和网络上的其他来源,目标<div>可以任意放置在页面上。但是,在我的测试中,我发现<div>需要包围<g:submitToRemote>标记。

如果它<div>将更新一些“随机”内容(即{em>部分包围{{1标签)。

考虑以下GSP代码:

<g:submitToRemote>

这是关于Grails 1.3.4 我错过了什么? - 谢谢

2 个答案:

答案 0 :(得分:4)

根据我的测试,g:submitToRemote的{​​{1}}属性必须指向当前控制器的当前操作(因为这会插入/将当前视图复制到当前视图中。

如果您在action中指定备用操作,则可以正常工作 - 即

g:submitToRemote

如果此操作提供模型 - 即,

<g:submitToRemote value="Click Me"
    action="ajaxAction" update="updateMe" />

然后需要有一个相应的GSP - 在这种情况下,应该说明,

def ajaxAction = { [message: 'foo'] }

或者,该操作可以使用$message 方法 - 就像这样,

render

我会暂时保留此问题,以防可能有其他回复,如果没有,则会接受此答案作为解决方案。

由于

答案 1 :(得分:3)

我认为问题在于您没有为您的操作指定控制器。尝试将controller =“...”添加到g:submitToRemote标记中。或者至少用g:form。

指定它

我确信<div>不需要包装。