Есть ли способ условно включить атрибуты в пользовательский тег JSP?
Допустим, у меня есть поле, которое может принимать 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>
теги, если атрибут пустой (скажем, itemLabel на форме: варианты, например) Что если я не хочу этого? Есть ли простой способ, чтобы атрибут вообще не отображался?
Я понимаю, что я могу сделать
<c:if test="${empty b}">
<myTag a="${varA}" c="${varC}" />
</c:if>
Но это означает, что нам нужно гигантское дерево решений, поскольку количество атрибутов увеличивается, если каждый из них может быть пустым.
Кто-нибудь знает лучший способ сделать это?