Есть ли способ условно включить атрибуты в пользовательский тег 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>

Но это означает, что нам нужно гигантское дерево решений, поскольку количество атрибутов увеличивается, если каждый из них может быть пустым.

Кто-нибудь знает лучший способ сделать это?

0 ответов

Другие вопросы по тегам