【问题标题】:Grails: Rendering two Views simultaneously with one Controller ActionGrails:使用一个控制器操作同时渲染两个视图
【发布时间】:2012-07-01 07:55:15
【问题描述】:

我的一个控制器的一个操作需要同时生成(重定向/渲染)两个单独的视图并将两个页面显示给客户端。就像当用户提交他的信息时,页面将重定向到带有列表的新页面。 同时另一个页面需要在新窗口中弹出包含一些附加信息(用户将打印此页面)。我知道,我可以用单个页面解决问题,但我想知道是否有任何方法可以从单个控制器操作同时生成两个单独的页面/窗口。

感谢期待

【问题讨论】:

    标签: grails view controller


    【解决方案1】:

    简单的答案是否定的。 Grails 没有做任何神奇的事情。它仍然受限于正常的 HTTP 请求/响应生命周期。一个请求得到一个响应。您所要求的听起来像是您希望 grails 能够为单个 HTTP 请求生成 2 个响应,这是不可能的。响应要么是浏览器要呈现的页面,要么是浏览器转到另一个 URL 的重定向消息。

    【讨论】:

    • 感谢您的洞察力。没有这样想。你是绝对正确的,虽然这并没有给我解决方案。
    【解决方案2】:

    您可以编写可以处理正常和 ajax 请求的操作。请参阅此处的文档: Responding to both Ajax and non-Ajax requests

    然后你可以生成你的“正常”视图。之后,您通过在客户端使用 ajax 调用相同的操作并为您的弹出页面加载数据。

    【讨论】:

    • 非常感谢您的建议。不知道这个功能。
    • 当然,这只是解决 Tri mentined 问题的一种“解决方法”……但也许这是一个您可以接受的解决方案。
    【解决方案3】:

    为什么不在主视图中使用<script>window.open()</script> 来打开弹出窗口?

    【讨论】:

    • 怜悯 boucoup。我使用了您的解决方案并与@peddn 混合
    猜你喜欢
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多