如何使用 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 我得到警告:

无法解析变量"状态">

我该如何解决这个问题?

你在作用域方面有问题,当你在 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}">

根据更新的代码,您需要在 HTML 中引用这样的"状态":

<div class="user-section">
    <img class="profile-pic" src="../assets/img/reza.png" alt="Chin"> <i class="status <%=status%>"></i>Reza
</div>

"JSP"在"服务器端"处理。 它的输出是 HTML,然后发送到您的浏览器。

Java

变量"status"在服务器上设置为 Java 字符串"脱机"或"联机"。 您可以使用 JSP 标记<%= %>将其值写入 HTML 流中。

最新更新