java - JSP如何调用变量?

标签 java jsp intellij-idea

在 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 得到了警告:

Cannot resolve variable 'status'

我该如何解决这个问题?

最佳答案

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

<%
    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}">

关于java - JSP如何调用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56451594/

相关文章:

c# - if else语句的写法

jsp - 动态 :form action

java - Window.location.href 有时不工作的原因是什么?

java - 在 Android Studio 中导出具有 Manifest 属性的 Jar 文件?

java - 在 IntelliJ 中创建存储库时,在 .gitignore 中包含什么是安全的

java - 如何阻止图像保存在 RAM 中,即使它们所代表的变量已分配给新图像

java - Spring Boot Oauth2 授权服务器不接受有效 token

表内的 Java 组合框覆盖写入数据

java - 使用 Struts 2 标签将 java 方法的值传递给 javascript 变量

java - IntelliJ 中的检查警告 "NullableProblems"不明确