在我的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。
有人有想法吗。 感谢。
答案 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来更新您的网页。