【发布时间】:2012-07-01 07:55:15
【问题描述】:
我的一个控制器的一个操作需要同时生成(重定向/渲染)两个单独的视图并将两个页面显示给客户端。就像当用户提交他的信息时,页面将重定向到带有列表的新页面。 同时另一个页面需要在新窗口中弹出包含一些附加信息(用户将打印此页面)。我知道,我可以用单个页面解决问题,但我想知道是否有任何方法可以从单个控制器操作同时生成两个单独的页面/窗口。
感谢期待
【问题讨论】:
标签: grails view controller
我的一个控制器的一个操作需要同时生成(重定向/渲染)两个单独的视图并将两个页面显示给客户端。就像当用户提交他的信息时,页面将重定向到带有列表的新页面。 同时另一个页面需要在新窗口中弹出包含一些附加信息(用户将打印此页面)。我知道,我可以用单个页面解决问题,但我想知道是否有任何方法可以从单个控制器操作同时生成两个单独的页面/窗口。
感谢期待
【问题讨论】:
标签: grails view controller
简单的答案是否定的。 Grails 没有做任何神奇的事情。它仍然受限于正常的 HTTP 请求/响应生命周期。一个请求得到一个响应。您所要求的听起来像是您希望 grails 能够为单个 HTTP 请求生成 2 个响应,这是不可能的。响应要么是浏览器要呈现的页面,要么是浏览器转到另一个 URL 的重定向消息。
【讨论】:
您可以编写可以处理正常和 ajax 请求的操作。请参阅此处的文档: Responding to both Ajax and non-Ajax requests
然后你可以生成你的“正常”视图。之后,您通过在客户端使用 ajax 调用相同的操作并为您的弹出页面加载数据。
【讨论】:
为什么不在主视图中使用<script>window.open()</script> 来打开弹出窗口?
【讨论】: