在grails中为链接创建一个字符串而不使用g:link

在grails中为链接创建一个字符串而不使用g:link,grails,gsp,Grails,Gsp,在如下所示的标记中: <a data-url="/new/request/showText/${requestInstance.id}"> view text</a> 查看文本 有没有办法不像我那样硬编码url 我尝试使用,但这会呈现为锚标记 我正在做的可能是找到,但我只是好奇在grails中是否有更好的方法来实现这一点?您可以使用 ${createLink(操作:'myaction',参数:[datasetId:dataset.id])} 完全控制。它只返回类似于h

在如下所示的标记中:

<a data-url="/new/request/showText/${requestInstance.id}"> view text</a>
查看文本
有没有办法不像我那样硬编码url

我尝试使用
,但这会呈现为锚标记

我正在做的可能是找到,但我只是好奇在grails中是否有更好的方法来实现这一点?

您可以使用

${createLink(操作:'myaction',参数:[datasetId:dataset.id])}

完全控制。它只返回类似于
http://myapp/myaction/123
和支持
g:link
支持的所有参数

更具体地说:

<a data-url="${createLink(action:'showText',id: requestInstance.id)}"> view text</a>
查看文本

应该可以工作。

您可以使用
${..}
中的
createLink
函数

因此,在您的情况下,这将是:

<a data-url="${createLink(controller: 'yourController', action: 'yourAction', params:[param1: 'value1'])}"> view text</a>
查看文本

对于控制器和GSP以外的上下文(即不可能在任何地方调用taglib),了解Springbean是值得的:
grailsLinkGenerator.link(…)
的工作与
createLink(…)