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>

它适用于任何标签库(例如 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>
于 2014-04-28T14:10:10.087 回答
0

您需要定义自定义 EL 函数,而不是自定义标签 bb:custom2。你可以这么称呼它:

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

您可以在此处阅读有关 EL 函数的信息。

于 2012-05-15T06:54:22.983 回答