Как отобразить div, учитывая, что jsp el не равен нулю?

#css #jsp #bootstrap-4 #el

#css #jsp #bootstrap-4 #el

Вопрос:

Я хотел знать, как правильно скрыть div, если не выполнены некоторые условия. Я пытаюсь добавить div, который содержит ошибку входа в систему и будет отображаться только при возникновении ошибки.

 <div id= "error" class="alert alert-danger" hidden="hidden" role="alert">
    ${loginError} 
</div>
  

Я попытался добавить скрипт, но это не сработало.

 <script type="text/javascript">
    if(null != request.getAttribute("loginError")){
        document.getElementById("error").hidden = "";

    }
</script>
  

Ответ №1:

Ключ в том, чтобы понять, где и когда какой код выполняется — JSP на сервере, когда страница запрашивается и отображается (т. Е. до отправки ответа в браузер), и Javascript в браузере, после того, как браузер получит уже сгенерированный ответ. Таким образом, в JS нет request переменной, поэтому

 if(null != request.getAttribute("loginError")){
  

не имеет смысла. Я бы предложил следующее:

 <div id= "error" class="alert alert-danger" ${ empty loginError ? '' : 'hidden'} role="alert">
  

( hidden Атрибуту не обязательно иметь значение, если оно присутствует, элемент будет скрыт — независимо от того, какое у него значение.)

Ответ №2:

Вам нужно изменить скрытое значение на false. Пустая строка в любом случае добавляет атрибут, скрытый для элемента. Итак, чтобы изменить состояние скрытости html-элемента, вы должны использовать логические значения. document.getElementById("error").hidden = false;