Grails Controller和URL Mapping Magic

时间:2015-04-29 18:58:56

标签: grails grails-controller url-mapping grails-3.0

Grails 3.0.1 。我正在寻找一个特定的URL /控制器结构。我的应用在根上下文(/)部署,意味着本地运行为http://localhost:8080,非本地运行为http://someserver.example.org

我希望/app/*下的所有内容都经过身份验证,并被认为是"核心应用程序的一部分" (需要登录)。该URL之外的任何内容都被视为公共网站的一部分(未经身份验证)。但是,我希望/app/本身只是一个占位符;我希望它成为Grails控制器。因此:

    可以配置
  • http://localhost:8080/appUrlMappings?)以显示登录页面
  • http://localhost:8080/app/<controller>/<action>遵循典型的Grails控制器/动作套装,并将调用正确的控制器动作

因此,http://localhost:8080/app/order/create将进行身份验证,如果已登录,则会调用OrderController#create操作,该操作可能会生成createOrder.gsp

我想知道Grails 3.x的做法是什么:

  1. 允许/app/存在,但不能作为控制器存在(就像我说的,可能只是重定向/映射到登录页面)
  2. 允许/app/下的任何内容跟随控制器/操作范例
  3. 关于如何实现这个的想法?

    更新

    class UrlMappings {
        static mappings = {
            "/$controller/$action?/$id?(.$format)?"{
                constraints {
                    // apply constraints here
                }
            }
    
            "/app/$controller/$action?/$id?" {
                ???
            }
    
            "/"(view:"/index")
            "500"(view:'/error')
            "404"(view:'/notFound')
        }
    }
    

0 个答案:

没有答案