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.