如何在Grails中部分更新布局/模板

时间:2011-06-24 08:31:05

标签: templates layout grails view

我对Web开发并不是很有经验,特别是对于视图,我需要一个简单的解释(并指向一个资源的指针也很好),如何处理部分渲染布局或模板而不渲染整个页面再次...

最佳做法是什么?

Sitemesh布局是否提供此功能?如果是这样的话?

我应该使用JQuery从控制器传递数据作为JSON并用“.html()”更新相应的div吗? (我很久以前就做过类似的事情来做一些基本的事情,并且认为这不是真正的grails方式)

<g:include>为我做这件事?

我读到的关于此事的一切让我更加困惑:)

实际上问题是,Grails处理部分页面更新的最佳做法是什么(如果现在还有其他方式,使用Ajax或没有ajax)

提前致谢

编辑:

tutorial实际上非常清楚如何做到这一点

2 个答案:

答案 0 :(得分:5)

  

最佳做法是什么?

通常的做法是提交一个AJAX请求(即从JavaScript触发的HTTP请求),并使用JavaScript回调函数在返回响应时更新页面的一部分。

  

Sitemesh布局是否提供此功能?如果是这样的话?

当在服务器端收到AJAX请求时,您可以使用Sitemesh布局响应,就像布置非AJAX请求的响应一样。 Sitemesh不知道或关心正在处理什么类型的请求,或者它是在整理页面还是只是片段。

  

我应该使用JQuery从控制器传递数据作为JSON并用“.html()”更新相应的div

看一下Grails提供的标签,这些标签在标签名称的某处有“remote”字样。它们提供了一种在Grails应用程序中执行常见AJAX任务的非常简单的方法。例如,要向名为bookByName的操作提交AJAX请求并将响应添加到ID为foo的元素,只需将以下标记添加到您的网页即可。

<g:remoteFunction action='bookByName' update='foo'/>

答案 1 :(得分:1)

您可能需要使用RemoteLink标记:http://grails.org/doc/latest/ref/Tags/remoteLink.html 您可以将其配置为在调用远程操作后更新页面的某些片段。

顺便说一下,在客户端使用ajax和javascript也是grails的方式:)

相关问题