2

親子関係のネストされたタグに関するドキュメントもインターネット全体で検索していますが、これまでのところ何も得られませんでした。私が学びたいのは、とにかくそのようなカスタムの「親」タグがその「子供」について知ることができるかどうかです。

<mytag:parent source="${somelist}">
    <mytag:child column="name" style="padding-left:10px">
    </mytag>
    <mytag:child column="surname" style="padding-left:10px">
    </mytag>
</mytag>

この例では、親タグがコレクションを取得し、子がsomelist.nameとをsomelist.surnameそれぞれ呼び出して、指定された列を出力します。子供について学ぶためにDOMを解析する必要がありますか、それとも「Groovy」コードで子供に到達できますか?

4

1 に答える 1

5

<mytag:parent>独自のコンテキスト/データをリクエストスコープ属性(またはページスコープ)として配置し、それを処理して<mytag:child>、終了タグで削除する必要があります。好き:

static final CONTEXT = this.class.name

def parent = { attrs, body ->
    def data = [
        name: 'test 1',
        surname: 'test 2'  // i guess you want to load this values from attr.source
    ]
    request.setAttribute(CONTEXT, data)
    out << body.call()
    request.removeAttribute(CONTEXT)
}


def child = { attrs, body ->
   def data = request.getAttribute(CONTEXT)
   out << 'name: '
   out << data.name  
   out << 'surname: '
   out << data.surname  
}
于 2012-05-30T09:08:23.577 に答える