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

时间:2011-01-07 12:34:54

标签: grails

考虑以下Grails URL映射:

class UrlMappings {
  static mappings = {
    "/something/${foo_id}/" {
    controller = "foo"
    action = "bar"
  }
}

使用g:link ..

生成网址时
<g:link controller="foo" action="bar" params="[foo_id: 123]">foobar</g:link>

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

<a href="/something/123">foobar</a>

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

但是,网址:s /something/123/something/123/仍有效。

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

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

解决问题的一种方法是手动创建所有网址:但我不想这样做。

2 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

如果你正在寻找一种创建groovy标签的方法,那总是添加斜杠(/)添加url的结尾,你最好的办法是创建一个grails自定义tagLib,它创建链接,就像g:link的方式做。

但我不知道是否停止通过链接导航而没有斜线。

相关问题