【问题标题】:Grails link taglib use outside of GSPGrails 链接 taglib 在 GSP 之外使用
【发布时间】:2010-11-04 09:48:28
【问题描述】:

我正在尝试使用 taglib 调用,那里有属性参数,还有链接 taglib 使用的标签本身内部的东西。我找不到传递给 g.link() 调用以使其呈现链接文本的属性。我已经尝试过 'body' 和 'link' 和 'text' 和 'linkText' - 这些都不起作用。

我希望能够打电话

g.link(action:"foo", controller:"bar", _____:"这里的链接文本")

但不知道该放什么_____

【问题讨论】:

    标签: grails groovy taglib


    【解决方案1】:

    通常你会这样做:

    g.link(action:"foo", controller:"bar", "text of the link here")
    

    链接文本不需要是最后一个参数,它可以出现在任何地方:

    g.link("text of the link here", action:"foo", controller:"bar")
    

    .

    闭包用法:

    您可以使用返回字符串的闭包来代替字符串:

    g.link(action:"foo", controller:"bar", {"text of the link here"})
    

    并且,与作为方法调用的最后一个参数的任何常规闭包一样,您可以将其放在右括号之后:

    g.link(action:"foo", controller:"bar") {"text of the link here"}
    

    【讨论】:

    • 文档根本没有引用这个,但确实显示了一个闭包。文档可能需要更新。
    【解决方案2】:

    没有参数可以传入(无论好坏)。

    要获取链接中的文本,请将其作为闭包传递。

    g.link(action:"foo", controller:"bar") { "text of the link here" }

    【讨论】:

      【解决方案3】:

      为了完整起见,由于文档中没有提到它:如果您在自己的 taglib 中调用标签(作为metod调用),您可以使用闭包在里面输出任何其他内容(使用out <<)外部标签。例如:

      out << g.form(method: "post", controller: "login") {
          out << "Name: " << g.textField(name: "name") << "<br>"
          out << "Password: " << g.passwordField(name: "password") << "<br>"
          out << g.submitButton(name: "login")
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-14
        • 1970-01-01
        • 2011-10-10
        • 1970-01-01
        • 2012-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多