鉴于 jsp el 不为空,如何取消隐藏 div?

How to unhide a div given that a jsp el is not null?

我想知道隐藏 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>

您需要将隐藏的值更改为 false。无论如何,空字符串添加隐藏到元素的属性。因此,要更改 html 元素的隐藏状态,您应该使用布尔值。 document.getElementById("error").hidden = false;

关键是要实现,wherewhen在服务器上执行了哪些代码-JSP,当请求和呈现页面(即 before 响应发送到浏览器),Javascript 在浏览器中,after 浏览器收到 已经生成的 响应。因此,JS中没有request变量,所以

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

没有意义。我建议如下:

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

hidden 属性不需要有值,如果它存在,元素将被隐藏 - 不管它的值是多少。)