如何指示Grails始终创建以斜杠(/)结尾的URL:

kno*_*orv 1 grails

请考虑以下Grails URL映射:

class UrlMappings {
  static mappings = {
    "/something/${foo_id}/" {
    controller = "foo"
    action = "bar"
  }
}
Run Code Online (Sandbox Code Playgroud)

使用g:link.. 生成URL时:

<g:link controller="foo" action="bar" params="[foo_id: 123]">foobar</g:link>
Run Code Online (Sandbox Code Playgroud)

..结果链接看起来像..

<a href="/something/123">foobar</a>
Run Code Online (Sandbox Code Playgroud)

请注意,URL映射中的结尾斜杠将被删除.

但是,URL:s /something/123/something/123/仍然有效.

由于我正在构建的应用程序的要求,我必须使用"斜杠结束"-version作为主要的URL.理想情况下,我想使URL不以斜杠结尾返回404(以避免规范页面问题).

什么是使Grails创建URL的最佳和最通用的方法:s如上所述,不删除结束斜杠?

解决它的一种方法是手动创建所有URL:但我不想这样做.

mfl*_*yan 5

不幸的是,grails URL映射机制并不那么复杂.因此,虽然前向URL映射将很好地工作(即从URL到控制器),但必须手动完成反向以实现所描述的结果.

可能最好的方法是创建自己的标签以输出所需的链接.