We can group URL mappings defined in grails-app/conf/UrlMappings.groovy using the group() method defined for the URL mapping DSL. The first argument is the first part of the URL followed by a closure in which we define mappings like we are used to.
Suppose we have defined the following two mappings in our UrlMappings.groovy file, both starting with /admin:
// File: grails-app/conf/UrlMappings.groovy
class UrlMappings {
static mappings = {
// Mappings starting both with /admin:
"/admin/report/$action?/$id?(.${format})?"(controller: 'report')
"/admin/users/$action?/$id?(.${format})?"(controller: 'userAdmin')
"/"(view:"/index")
"500"(view:'/error')
}
}
We can rewrite this and use the group() method to get the following definition:
// File: grails-app/conf/UrlMappings.groovy
class UrlMappings {
static mappings = {
// Using grouping for mappings starting with /admin:
group("/admin") {
"/report/$action?/$id?(.${format})?"(controller: 'report')
"/users/$action?/$id?(.${format})?"(controller: 'userAdmin')
}
"/"(view:"/index")
"500"(view:'/error')
}
}
When we use the createLink and link tags the group is taken into account. For example when we use <g:createLink controller="userAdmin"/> we get the following URL if the application name is sample: /sample/admin/users.
Code written with Grails 2.3.