【问题标题】:How to partially update a layout / template in Grails如何在 Grails 中部分更新布局/模板
【发布时间】:2011-09-21 20:33:59
【问题描述】:

我没有真正的 web 开发经验,尤其是在视图方面,我需要一个简单的解释(以及指向资源的指针也会非常好)关于如何处理部分渲染布局或模板而不渲染整个页面又...

最佳做法是什么?

Sitemesh 布局是否提供此功能?如果有怎么办?

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

<g:include> 为我做这个吗?

我读到的一切都让我更加困惑:)

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

提前致谢

编辑:

这个tutorial实际上给出了一个很好的想法

【问题讨论】:

    标签: templates layout grails view


    【解决方案1】:

    最佳做法是什么?

    通常的做法是提交 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'/>
    

    【讨论】:

    • 你拯救了我的一天。谢谢。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 2013-09-24
      • 2014-07-12
      • 2017-08-16
      相关资源
      最近更新 更多