Grails URL映射导致GSP出错



我有一个网站的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和控制器之间的前缀的。

您可以使用命名的url映射,然后将prefix作为参数的一部分传递:

URL映射:

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']" />

当您在浏览器中点击URL时,它会起作用,因为URL中有前缀。当您使用链接标记来创建url时,它不起作用,因为grails没有关于该控制器应该使用哪个前缀的信息。您需要提供前缀到链接标记的值。

试试这个

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

简而言之——如果你想让链接重写来考虑它们,你必须将这些动态变量作为参数传递。点击此处阅读更多文档

相关内容

  • 没有找到相关文章

最新更新