使Grails操作仅适用于包含

时间:2014-05-07 09:21:32

标签: grails groovy action

我有一个带有多个动作的Grails控制器。现在,所有操作都可用于用户调用(我可以从我的浏览器访问它们),甚至是那些只能使用g:include标签调用的操作。我想限制从浏览器访问此类操作。我无法将操作标记为受保护,因为在这种情况下,我将无法在另一个控制器的视图中包含此操作。

是否有任何练习如何在这种情况下封装动作?

1 个答案:

答案 0 :(得分:2)

“保护”操作不能通过URL访问的方法是不向它们提供URL映射。默认的url映射看起来像这样......

class UrlMappings {

    static mappings = {
        "/$controller/$action?/$id?(.$format)?"{
            constraints {
            // apply constraints here
        }

        // ...
    }
}

那个“/$controller/$action?/$id?(.$format)?”映射对于简单的crud应用程序和演示很方便,但对于任何实际的应用程序,你几乎总是应该删除它。没有它,只有您明确公开的操作才可以访问。