g:each をラップしたいのでカスタムタグがあります
def myEach = { attrs, body ->
out << "${g.each(in:attrs.in, var:attrs.var, status:attrs.status) { 'test' }}"
}
しかし、 each タグはクロージャー each と混同されるため、エラーになります。これを行う方法はありますか?最悪の場合、各タグを含む gsp ページを出力します。
g:each をラップしたいのでカスタムタグがあります
def myEach = { attrs, body ->
out << "${g.each(in:attrs.in, var:attrs.var, status:attrs.status) { 'test' }}"
}
しかし、 each タグはクロージャー each と混同されるため、エラーになります。これを行う方法はありますか?最悪の場合、各タグを含む gsp ページを出力します。
何か不足している可能性がありますが、一重引用符は役に立ちませんでした。例:
def myEach = { attrs, body ->
out << "${g.'each'(in:attrs.in, var:attrs.var, status:attrs.status) { 'test' }}"
}
それを使用すると、同じエラーが発生します...
私の解決策は、groovyPagesTemplateEngine
Beanを使用することです。これで、文字列テンプレートを解析できます:
def myEach = { attrs, body ->
attrs.content = "test"
String template = "<g:each in='${attrs.in}'>${attrs.content}</g:each>"
groovyPagesTemplateEngine.createTemplate(template, 'mytemplate').make([attrs:attrs]).writeTo(out)
}