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