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集合以填充我的allPostsdiv。

有没有人有想法请。谢谢。

4

1 回答 1

0

要使用标签update上的属性submitToRemote,您需要发回呈现的帖子。

首先,将您呈现用户帖子的 div 制作成模板,例如_userPosts.gsp. 将页面中的 div 替换为render标签以使用模板:

<g:render template="userPosts" />

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

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

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

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

于 2012-02-03T16:44:55.647 回答