我正在创建一些jsp自定义标签。现在我的要求如下:
<bb:custom1 id="id1" attr1="<bb:custom2 attr2='attr2val'></bb:custom2>"></bb:custom1>
即属性的值应该是另一个自定义标记,它将由相应的标记处理程序解析。我可以看到这适用于所有的html标签。但是当我尝试使用我的自定义标签时,它不起作用。可以告诉我如何实现这一点。
我正在使用标记处理程序创建自定义标记。
答案 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。