具有属性值的Jsp自定义标记作为另一个自定义标记

时间:2012-05-15 05:50:07

标签: jsp jsp-tags custom-tags

我正在创建一些jsp自定义标签。现在我的要求如下:

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

即属性的值应该是另一个自定义标记,它将由相应的标记处理程序解析。我可以看到这适用于所有的html标签。但是当我尝试使用我的自定义标签时,它不起作用。可以告诉我如何实现这一点。

我正在使用标记处理程序创建自定义标记。

2 个答案:

答案 0 :(得分:1)

我通过使用临时变量来解决问题:

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

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

它适用于任何taglib(例如custom2可以来自cc:custom2)。

另一个优点是您不需要知道函数语法(例如,如果需要许多参数,要放置哪个顺序):

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

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

答案 1 :(得分:0)

你需要定义自定义EL功能,而不是自定义标签bb:custom 2.比你可以调用它:

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

您可以阅读EL函数here