在Grails 2.0中使用AJAX提交表单的问题

时间:2012-02-03 16:21:06

标签: jquery ajax grails groovy grails-2.0

在我的GSP页面中,我有这样的表格:

<g:form action="ajaxAdd">
  <g:textArea id='postContent' name="content" rows="3" cols="50"/><br/>
  <g:submitToRemote value="Post"
      url="[controller: 'post', action: 'addPostAjax']"
      update="allPosts"
  />            
</g:form>

在同一页面中我有这个div:

<div class="allPosts">
    <g:each in="${user.posts}" var="post">
        <div class="postEntry">
            <div class="postText">
                ${post.content}
            </div>
            <div class="classDate">
                ${post.dateCreated}
            </div>
        </div>
    </g:each>
</div>

当我点击按钮时,应用程序会触发我的控制器中的操作addPostAjax,但问题是我无法找到如何发送回user.posts集合以便填充我的allPosts div。

有人有想法吗。 感谢。

1 个答案:

答案 0 :(得分:0)

要使用update标记上的submitToRemote属性,您需要发回提交的帖子。

首先,将用户帖子呈现的div放到模板中,例如_userPosts.gsp。使用render标记替换页面中的div以使用模板:

<g:render template="userPosts" />

然后在您的控制器中,addPostAjax应该如下所示:

def addPostAjax() {
    def user = ....

    render template: 'userPosts', model: [user: user], contentType: "text/plain"
}

另一种选择是render user as JSON并编写一些javascript来更新您的网页。