#spring #jstl
#spring #jstl
Вопрос:
Я хочу отключить HTML-кнопку в зависимости от значения, присутствующего в Spring bean.Я использую свойство JSTL empty
, но безуспешно.
Вот мой код
<input type="submit" value="SendEmail" disabled="${empty reportNotificationFbo.providersList}" >
Вот reportNotificationFbo
компонент spring и providersList
это список.
Я хочу отключить Submit
кнопку, если providersList
она пуста.
-Спасибо.
Ответ №1:
Состояние кнопки контролируется наличием disabled
атрибута, а не его значением. Попробуйте следующее:
<input type="submit" value="SendEmail"
"${(empty reportNotificationFbo.providersList) ? 'disabled' : ''}" >
Комментарии:
1. Спасибо axtavt 🙂 Все встало на свои места 🙂 Еще раз спасибо 🙂
2. Просто примечание, у меня это не работает, я получаю
org.apache.jasper.JasperException: Unterminated amp;<stripes:select tag
3. Вы же не хотите, чтобы это было заключено в кавычки, не так ли?
4. У меня это решение тоже не работает. Получение тега с ошибкой Unterminated [<form:input].
Ответ №2:
Если у вас есть disabled
атрибут с любым значением, он будет отображаться в браузере как отключенный
Попробуйте
<c:choose>
<c:when test="${empty reportNotificationFbo.providersList}">
<input type="submit" value="SendEmail" disabled="disabled" >
</c:when>
<c:otherwise>
<input type="submit" value="SendEmail" >
</c:otherwise>
</c:choose>
Извините, я не проверял этот код
Комментарии:
1. Спасибо Ривзи. Приведенный выше ответ работает. Попробую и ваш, но сейчас у меня заканчивается время. Спасибо 🙂
2. Оба метода должны работать. Причина, по которой disabled=»false» не работает, заключается в том, что атрибут HTML disabled с ЛЮБЫМ значением (включая false) сделает кнопку отключенной. Это часть исходной спецификации html, где значение атрибута фактически не требуется. Это объясняется здесь stevefenton.co.uk/Content/Blog/Date/201104/Blog /…
3. Что, если мой </input> не появится до тех пор, пока не будет выбрано? Это выдаст ошибку.
4. @JL Возможно, вам стоит опубликовать свою разметку в качестве вопроса на S.O. (если вы еще этого не сделали), из того, что я вижу, вы используете stripes….
5. Да, я использую
<stripes:select>
тег, и, похоже, ни один из этих ответов не работает. Мы решили проблему, переключив ее на<input>