Использование тега taglib с MarkupBuilder

Я пытаюсь вызвать Grails Tablib в сочетании с Groovy MarkupBuilber

MarkupBuilder html = new MarkupBuilder(out)

html.div {
    g.link(controller: "...", action: "...") {
        ...
    }
}

Как описано в документации Grails (http://docs.grails.org/latest/guide/theWebLayer.html#_rendering_a_response) это не работает, потому что вызов taglib возвращает некоторый текст, который будет проигнорирован MarkupBuilder

Я также обнаружил эту проблему в проекте grails-gsp на github (https://github.com/grails/grails-gsp/issues/7) с той же проблемой. В этом вопросе решение заключается в использовании out <<.

Это правильное решение и правильный путь или есть другие возможности?


person Andreas    schedule 12.11.2017    source источник


Ответы (1)


Просто используйте mkp.yield или mkp.yieldUnescaped для пользовательского текста, добавленного в синтаксис конструктора.

MarkupBuilder html = new MarkupBuilder(out)

html.div {
    mkp.yieldUnescaped g.link(controller: "...", action: "...") {
        ...
    }
}
person droggo    schedule 13.11.2017