【发布时间】:2012-01-12 16:30:18
【问题描述】:
我需要在 Grails 中获取浏览器 URL,或者特别是在 UrlMapping 中获取它的参数。
我在特定情况下需要这个,在来自不同控制器/动作的异步调用之后,此时 request.forwardURI 已更改为异步 url,而实际浏览器 url 保持不变。
有没有简单的方法来做到这一点?
【问题讨论】:
标签: grails groovy url-mapping
我需要在 Grails 中获取浏览器 URL,或者特别是在 UrlMapping 中获取它的参数。
我在特定情况下需要这个,在来自不同控制器/动作的异步调用之后,此时 request.forwardURI 已更改为异步 url,而实际浏览器 url 保持不变。
有没有简单的方法来做到这一点?
【问题讨论】:
标签: grails groovy url-mapping
如果您有权访问request 对象,则可以获取URL 的任何属性(包括参数),因为request 是HttpServletRequest 的实现。
【讨论】:
由于您正在进行异步调用,只需将当前浏览器 URL 作为参数添加到您的请求中即可。通过window.location 检索它并将其添加到通过您的异步调用传入的参数中。
【讨论】:
如果您尝试根据 URL 参数跟踪用户的当前状态,您可以查看 Grails 中的 Spring Web Flow 支持 -> http://grails.org/doc/latest/guide/theWebLayer.html#webflow
显然,与使用 Ajax 的 RIA 相比,这更适用于有状态的 Web 应用程序,但 Web Flow 在隔离特定用户操作方面做得非常好,可能在这里也有帮助。
【讨论】: