考虑以下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如上所述不删除结束斜杠?
解决问题的一种方法是手动创建所有网址:但我不想这样做。
答案 0 :(得分:5)
不幸的是,grails URL映射机制并不那么复杂。因此,虽然前向URL映射可以很好地工作(即从URL到控制器),但必须手动完成反向以实现所描述的结果。
最好的方法可能是创建自己的标签以输出所需的链接。
答案 1 :(得分:1)
如果你正在寻找一种创建groovy标签的方法,那总是添加斜杠(/)添加url的结尾,你最好的办法是创建一个grails自定义tagLib,它创建链接,就像g:link的方式做。
但我不知道是否停止通过链接导航而没有斜线。