在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我得到警告:
无法解析变量“状态”
我该如何解决?
答案 0 :(得分:3)
您在使用范围时遇到了问题,当您在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}">
答案 1 :(得分:2)
根据更新后的代码,您需要在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变量“状态”在服务器上设置为Java字符串“ offline”或“ online”。您可以使用JSP标记<%= %>
将其值写入HTML流。