2

私はいくつかのjspカスタムタグを作成しています.今、次のような要件があります:

<bb:custom1 id="id1" attr1="<bb:custom2 attr2='attr2val'></bb:custom2>"></bb:custom1>

つまり、属性の値は、対応するタグ ハンドラによって解決される別のカスタム タグである必要があります。これはすべてのhtmlタグで機能することがわかりました.しかし、カスタムタグで試してみると機能しません.誰かがこれを達成する方法を教えてください.

タグ ハンドラを使用してカスタム タグを作成しています。

4

2 に答える 2

1

一時変数を使用して問題を解決しました。

<c:set name="val_attr">
    <bb:custom2 attr2='attr2val' />
</c:set>

<bb:custom1 id="id1" attr1="${val_attr}"></bb:custom1>

また、任意の taglibs で動作します (たとえば、custom2 は cc:custom2 から取得できます)。

もう 1 つの利点は、関数の構文を知る必要がないことです (たとえば、多くのパラメーターが必要な場合、どの順序で配置するか)。

<c:set name="val_attr">
    <cc:custom2 param2='myparam2' param1='myparam1' />
</c:set>

<bb:custom1 id="id1" attr1="${val_attr}"></bb:custom1>
于 2014-04-28T14:10:10.087 に答える
0

カスタムタグbb:custom2ではなく、カスタムEL関数を定義する必要があります。あなたがそれを呼ぶことができるより:

<bb:custom1 id="id1" attr1="${bb:custom2(attr2val)}"></bb:custom1>

EL関数についてはここで読むことができます。

于 2012-05-15T06:54:22.983 に答える