Grails 3.0.1 。我正在寻找一个特定的URL /控制器结构。我的应用在根上下文(/
)部署,意味着本地运行为http://localhost:8080
,非本地运行为http://someserver.example.org
。
我希望/app/*
下的所有内容都经过身份验证,并被认为是"核心应用程序的一部分" (需要登录)。该URL之外的任何内容都被视为公共网站的一部分(未经身份验证)。但是,我希望/app/
本身只是一个占位符;我不希望它成为Grails控制器。因此:
http://localhost:8080/app
(UrlMappings
?)以显示登录页面http://localhost:8080/app/<controller>/<action>
遵循典型的Grails控制器/动作套装,并将调用正确的控制器动作因此,http://localhost:8080/app/order/create
将进行身份验证,如果已登录,则会调用OrderController#create
操作,该操作可能会生成createOrder.gsp
。
我想知道Grails 3.x的做法是什么:
/app/
存在,但不能作为控制器存在(就像我说的,可能只是重定向/映射到登录页面)/app/
下的任何内容跟随控制器/操作范例关于如何实现这个的想法?
class UrlMappings {
static mappings = {
"/$controller/$action?/$id?(.$format)?"{
constraints {
// apply constraints here
}
}
"/app/$controller/$action?/$id?" {
???
}
"/"(view:"/index")
"500"(view:'/error')
"404"(view:'/notFound')
}
}