Ошибка отображения URL Grails на GSP - PullRequest
1 голос
/ 13 февраля 2012

У меня есть сайт, URL которого похож на этот:

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

У меня есть URL-адрес, подобный этому

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

Я могу правильно добраться до контроллера.

Но на стороне GSP

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

Обратите внимание, как я теряю префикс между mysite и контроллером.

Ответы [ 2 ]

3 голосов
/ 13 февраля 2012

Вы можете использовать именованные сопоставления URL-адресов , а затем передать prefix как часть параметров:

URLMappings:

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

GSP:

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

Чтобы использовать sortableColumn, просто поместите все параметры URLMapping в свойство params:

<g:sortableColumn property="col" title="title" params="[ prefix: 'prefix', controller:'controller', action:'action']" />
0 голосов
/ 13 февраля 2012

Работает, когда вы нажимаете URL в браузере, потому что префикс доступен в URL.Он не работает, когда вы используете тег ссылки для создания URL, потому что Grails не имеет информации о том, какой префикс следует использовать для этого контроллера.Вам нужно будет указать значение префикса для тега ссылки.

Попробуйте это * коротко

<g:link controller="controller" params="[prefix:'admin']">abc</g:link>

- вы должны передать эти динамические переменные как параметры, если вы хотите переписать ссылкурассмотреть их.Читайте больше документов здесь

...