关于grails过滤器的问题

时间:2010-06-05 19:00:10

标签: grails

基本上我有两个关于grails过滤器的问题。

  1. 根据grails文档,您可以在过滤器中执行以下操作
  2. if (userId != paramsUserId) {
        flash.message = "You can only modify yourself"
        redirect(action: 'list')
        return false
    }
    

    如果上述条件为真,则返回语句将如何执行?

    1. 我的过滤器中是否可以重定向某个也有重定向的动作?

1 个答案:

答案 0 :(得分:6)

1 - 从过滤器返回false会阻止执行进一步的过滤器(以及在过滤器之前的操作)。浏览器将获得302重定向并转到您要求重定向到的“列表”方法。

http://grails.org/doc/2.3.7/guide/single.html#filterTypes

2 - 是的。重定向到重定向的其他东西很好。这对浏览器来说无关紧要。如果你在firebug中观看它,你会看到重定向到底是什么。当您重定向浏览器时收到HTTP状态代码为302(“Found”)的响应时,此响应还包括浏览器接下来要请求的URL(您要重定向到的内容,即“list”的url)上例中的方法)。然后,浏览器请求url,它的行为就像是第一个请求一样。

这就是闪存范围如此有用的原因,闪存范围内的东西会持续到下一个请求,因此它们会跨越重定向。