在 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/