【发布时间】:2021-09-07 01:08:57
【问题描述】:
目前使用 grails 4.0.3。
我正在尝试使用简单的<g:link> 标签生成指向控制器操作的链接:
<g:link controller="myController" action="myAction" params="[someParam:'myValue']">Link text</g:link>
在我的 UrlMappings 文件中,我将此控制器映射到用于外部调用的通用 URL。此映射会强制执行一些我想要在进行此映射时强制执行的参数:
class UrlMappings {
static mappings = {
"/service/someExposedUrl" {
controller = "myController"
action = "myAction"
someParam = "defaultValue"
}
}
}
但是,在我的应用程序中写入页面的链接是使用 UrlMapping 定义编写的。
http://serverUrl/service/someExposedUrl?someParam=<ignored>
而不是
http://serverUrl/myController/myAction?someParam=myValue
在这种情况下,/service URL 上的参数将被忽略,因为它们在 UrlMapping 中是硬编码的。
有没有办法强制 grails 链接到指定的控制器/动作而不是映射?
【问题讨论】:
-
"有没有办法强制 grails 链接到指定的控制器/动作而不是映射?" - 您描述的行为是故意的。使用
g:link标记的部分目的是利用反向url 查找,因此您不必对URI 进行硬编码。如果您不希望发生反向 url 映射,可以使用<g:link uri='myController/myAction'>之类的东西。
标签: grails