grails <g:link tag =“”有时=“”works =“”和=“”有时=“”不=“”> </g:link>

时间:2009-12-03 01:39:25

标签: grails

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

标签有时会起作用,即呈现为

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

有时不会。在这种情况下,我会得到一个

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

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

3 个答案:

答案 0 :(得分:1)

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

$ GRAILS_HOME \ SRC \的java \有机\ Codehaus的\常规\的grails \插件\网络\标签库\ ApplicationTagLib.groovy

答案 1 :(得分:0)

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

但事实证明我已将我的上下文根“/”映射到显示登录页面。我以为它会重定向,但实际上它暴露了“/”的Session.login页面。因此,当grails被告知创建一个链接转到Session.login时,它可以提出的最简单的链接将带我到那里“/”。所以“/”毕竟是正确的。

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

答案 2 :(得分:0)

只有一条可能有用的评论:

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

  • 视图
  • CONTROLLER_NAME
  • your_view.gsp

这很好用:&gt;&gt; <a href="${createLink(uri: '/foo/bar')}">

如果你在src / template中的.gsp文件中(例如修改list.gsp,create.gsp等):

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