Search code examples
grailsgspurlmappings.groovy

Grails URL mapping cause error on GSP


I have a site that have URL similar to this:

/mysite/admin/controller/action/id
/mysite/search/controller/action/id
/mysite/user/controller/action/id

I have my URL mapping like this

"/$prefix/$controller/$action?/$id?"{
    constraints {}
}

I am able to get to the controller correctly.

But on the GSP side

<g:link controller="controller">abc</g:link> ==> <a href="/mysite/controller/...">abc</a>

Notice how I lose the prefix between mysite and the controller.


Solution

  • You can use named url mappings and then pass the prefix as part of the params:

    URLMappings:

    name prefix: "/$prefix/$controller/$action?/$id?"{
        constraints {}
    }
    

    GSP:

    <g:link mapping="prefix" params="[prefix:$prefix, controller:...]">abc</g:link>
    

    To use sortableColumn, just put all of the URLMapping parameters in the params property:

    <g:sortableColumn property="col" title="title" params="[ prefix: 'prefix', controller:'controller', action:'action']" />