繁体   English   中英

ils <g:link tag sometimes works and sometimes doesn't>

[英]grails <g:link tag sometimes works and sometimes doesn't>

<g:link controller="foo" action="bar">foobar</g:link>

标签有时有效,即呈现为

<a href="grailsapp/foo/bar">foobar</a>

有时并非如此。 在这种情况下,我会得到一个

<a href="grailsapp/">foobar</a>

有谁知道什么条件导致此标签无法扩展? 还有什么方法可以调试标签扩展逻辑?

要调试-您需要的文件位于

$ GRAILS_HOME \\ src \\ java \\ org \\ codehaus \\ groovy \\ grails \\ plugins \\ web \\ taglib \\ ApplicationTagLib.groovy

只有一句话可能有用:

如果您在文件夹中的.gsp文件中:

  • 视图
  • controller_name
  • your_view.gsp

这可以正常工作:>> <a href="${createLink(uri: '/foo/bar')}">

如果您将.gsp文件放入src / template中(例如,修改list.gsp,create.gsp等):

您必须添加这样的反斜杠: <a href="\\${createLink(uri: '/foo/bar')}">

这可能无法解决您或其他所有人的问题,但是我也遇到了同样的问题。 我有一个要链接到的/ mywebapp / session / login URL,但是<g:link controller="session" action="login">只是解析为/ mywebapp /。

但是事实证明,我已将上下文根目录“ /”映射为显示登录页面。 我以为它将重定向,但实际上它在“ /”处显示了Session.login页面。 因此,当告诉grails创建一个指向Session.login的链接时,它可能想到的最简单的链接就是“ /”。 所以“ /”毕竟是正确的。

如果仍然无法正常工作,但是仍需要一种方法来生成相对于上下文根的链接,则可以使用<a href="${createLink(uri: '/foo/bar')}">

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM