为什么我会在由Grails g:链接标签创建的链接的末尾看到双星号

  • 本文关键字:链接 创建 标签 Grails grails
  • 更新时间 :
  • 英文 :


这样的代码:

<g:link controller="category" action="show" id="${category.id}">${category.name}</g:link>

产生下一个链接:

<a href="/shop/categories/show/1/**">Test category</a>

为什么会发生以及如何删除这个看起来不错的双星号?

来自您的评论:

urlmappings包含此"/categories/$action?/$id?/**?"。但是我真的想告诉圣杯,我不在乎URL是否包含有意义部分后的一些不必要的部分。

未结合的通配符(***)为"向前"的URL映射做正确的事情(即,采用传入的请求URI并将其映射到具有参数的控制器操作中),但是,查看默认RegexUrlMapping的源代码您尝试在反向中使用此类映射,而***组件实际上将包含在生成的URL中。为了能够生成明智的URL,映射的每个段都必须是文字或绑定到指定变量的文字,因此生成器可以知道替换通配符应该使用的(可能是空的)值。

如果要使用映射

"/categories/$action?/$id?/$path**?"

然后,它仍将在正向模式下匹配相同的URI(在params.path中存储id之后的URI的尾随部分),但是<g:link controller="category" action="show" id="${category.id}">会知道使用空的拖延组件,因为您没有指定params="[path:'something']"

最新更新