首页 > 解决方案 > 如何用 JSP 调用变量?

问题描述

在 JSP 中,我创建了一个像这样的简单变量:

<%
    if (request.getSession().getAttribute("user") != null) {
        String status = "online";
    }
    else {
        String status = "offline";
    }
%>

在 HTML 中,我这样调用变量:${status}

因此,字符串“offline”或“online”只是一个 CSS 类,如下面的代码所示:

<img class="profile-pic" src="../assets/img/reza.png" alt="Chin"> <i class="status ${status}"></i>Reza

所以整个代码看起来像这样:

<%
    if (request.getSession().getAttribute("user") != null) {
        String status = "online";
    }
    else {
        String status = "offline";
    }
%>
    <div class="user-section">
        <img class="profile-pic" src="../assets/img/reza.png" alt="Chin"> <i class="status ${status}"></i>Reza
    </div>

但从 Intellij 我收到警告:

无法解析变量“状态”

我怎样才能解决这个问题?

标签: javajspintellij-idea

解决方案


您的范围有问题,当您在 if 或 else 块中声明一个变量时,您可以在该范围内使用此变量,您可以像这样解决您的问题:

<%
    String status = "offline"; // declare the variable outside the if else
    if (request.getSession().getAttribute("user") != null) {
        status = "online"; // if the condition is correct then assign "online"
    }
%>

编辑后

似乎您以错误的方式使用变量名,而是必须使用:

<i class="status <%=status%>">

代替 :

<i class="status ${status}">

推荐阅读