我正在创建一些 jsp 自定义标签。现在我有如下要求:
<bb:custom1 id="id1" attr1="<bb:custom2 attr2='attr2val'></bb:custom2>"></bb:custom1>
即属性的值应该是另一个自定义标签,将由相应的标签处理程序解析。我可以看到这适用于所有 html 标签。但是当我尝试使用我的自定义标签时它不起作用。有人可以告诉我如何实现这一点。
我正在使用标签处理程序创建自定义标签。
我正在创建一些 jsp 自定义标签。现在我有如下要求:
<bb:custom1 id="id1" attr1="<bb:custom2 attr2='attr2val'></bb:custom2>"></bb:custom1>
即属性的值应该是另一个自定义标签,将由相应的标签处理程序解析。我可以看到这适用于所有 html 标签。但是当我尝试使用我的自定义标签时它不起作用。有人可以告诉我如何实现这一点。
我正在使用标签处理程序创建自定义标签。
我通过使用临时变量解决了这个问题:
<c:set name="val_attr">
<bb:custom2 attr2='attr2val' />
</c:set>
<bb:custom1 id="id1" attr1="${val_attr}"></bb:custom1>
它适用于任何标签库(例如 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>
您需要定义自定义 EL 函数,而不是自定义标签 bb:custom2。你可以这么称呼它:
<bb:custom1 id="id1" attr1="${bb:custom2(attr2val)}"></bb:custom1>
您可以在此处阅读有关 EL 函数的信息。