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

add*_*dd9 2 grails layout templates view

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

什么是最佳做法?

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

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

或者<g:include>这样对我?

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

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

提前致谢

编辑:

教程实际上非常好地了解了如何做到这一点

Dón*_*nal 5

什么是最佳做法?

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

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

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

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

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

<g:remoteFunction action='bookByName' update='foo'/>
Run Code Online (Sandbox Code Playgroud)