1

假设我有一个可以包含 3 个属性的字段

<myTag a="something" b="something" c="something" />

假设我只想在变量不为空时包含那些 a,b,c 属性。所以有了 EL 它就变成了这样

<myTag a="${varA}" b="${varB}" c="${varC}" />

如果一个或多个变量为空(例如 varB 为空),我将得到如下输出:

<myTag a="a val" b c="c val" />

所以 b 仍然存在,但传递了一个空白值。如果属性为空白,这可能会导致某些弹簧<form:etc>标签出现问题(例如 form:options 上的 itemLabel)如果我不想要这样怎么办?有没有一种简单的方法可以让属性完全不显示?

我知道我能做到

<c:if test="${empty b}">
    <myTag a="${varA}" c="${varC}" />
</c:if>

但这意味着我们需要一个巨大的决策树,因为如果每个属性都可能是空白的,那么属性的数量就会增加。

有谁知道更好的方法来做到这一点?

4

0 回答 0