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