Grails remoteField - 我可以调用渲染/重定向吗?

时间:2012-09-05 14:09:27

标签: ajax grails

我不是在寻找div更新。我正在寻找整页“刷新”

所以我有一个标签:

<g:remoteField controller="person" action="updatePerson" id="${personInstance.id}" paramName="search" name="updatePerson" value="${personInstance?.favoriteBreed}" />

在我的附加方法中,我想执行更新域对象的操作,然后刷新整个页面。我已经尝试了渲染和重定向到应用程序中的简单操作,但没有任何调用。所以我认为使用remoteField标签是不可能的。

这是真的吗?

2 个答案:

答案 0 :(得分:0)

<g:remoteField />拥有可用于执行您想要的事件onSuccess。您可以查看更多选项here

尝试(未测试):

<g:remoteField controller="person" action="updatePerson" 
    id="${personInstance.id}" paramName="search" name="updatePerson"    
    value="${personInstance?.favoriteBreed}" onSuccess="reloadPage()" />

您需要创建javascript函数:

function reloadPage() {
  window.location.reload();
}

答案 1 :(得分:0)

为什么要通过AJAX重新实现页面的正常行为?你为什么不在被叫控制器的末尾调用重定向到正确的动作?

假设您处于由showPerson操作导致的视图中。在这个视图中,使用一个简单的调用updatePerson(不关心params属性,它只是一个例子):

<g:Link controller="person" action="updatePerson" id="${personInstance.id}" params="${name: 'search'}">click me</g:link>

并在控制器中执行以下操作:

def updatePerson = {
  // your own updating stuff

  redirect(action: "show", id: person.id)
}

不是更容易吗? :)