grails 3 taglib,html builder和createLInk

时间:2017-04-27 15:42:04

标签: grails taglib

grails 3中是否可以使用createLink和HTMLBuilder创建taglib。我尝试过:

def buttonTaglib = { attrs, body ->
        def mb = new groovy.xml.MarkupBuilder(out)
        mb.button(type: "button", class: "btn btn-success") {
            g.createLink(controller: 'test', action: 'show', id: 1) { mkp.yield "buttonTaglib" }
        }
    }

def buttonTaglib2 = { attrs, body ->
        def mb = new groovy.xml.MarkupBuilder(out)
        out << g.createLink(controller:"test", action:"show") << mb.button(type: "button", class: "btn btn-success") { "buttonSimple" }
    }

没有成功。

2 个答案:

答案 0 :(得分:1)

标准使用的典型标准是否足够,如果是这样的话就像这样容易:

def buttonTaglib2 = { attrs, body ->
        out << """
<a href="${g.createLink(controller:"test", action:"show")}" class="btn btn-success">Test</a>
"""
    }

您也可以渲染模板并将params或attrs传递给tempalate。然后像通常从控制器一样处理您的值。

答案 1 :(得分:0)

这个适合我:

def button = { attrs, body ->
        def mb = new groovy.xml.MarkupBuilder(out)
        out << link(controller: attrs.controller, action: attrs.action, id: attrs.id, params: attrs.params ) {
            mb.button(type: attrs.type, class: attrs.class) {
                mkp.yield attrs.name
            }
        }
}