В HTML-формах кнопки можно отключить, указав для них атрибут "disabled" с любым значением:
<button name="btn1" disabled="disabled">Hello</button>
Если кнопка должна быть включена, атрибут не должен существовать, поскольку нет определенного значения, которое может быть отключен атрибутом disabled, который оставил бы кнопку включенной.
Это вызывает у меня проблемы, когда я хочу включать/отключать кнопки при использовании JSP-документов (jspx). Поскольку документы JSP должны быть хорошо сформированными XML-документами, я не вижу никакого способа условного включения этого атрибута, поскольку что-то вроде следующего не является законным:
<button name="btn1" <%= (isDisabled) ? "disabled" : "" %/> >Hello</button>
Хотя я мог бы повторить тег дважды, используя тег JSTL if, чтобы получить желаемый эффект, в моем конкретном случае у меня есть более 15 атрибутов, объявленных на кнопке (много атрибутов обработчика событий javascript для AJAX), поэтому дублирование тега идет чтобы сделать JSP очень грязным.
Как я могу решить эту проблему, не жертвуя удобочитаемостью JSP? Существуют ли какие-либо пользовательские теги, которые могут добавлять атрибуты родителям, манипулируя выходным DOM?