Как вызвать переменную с JSP? - PullRequest
1 голос
/ 05 июня 2019

В 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 я получаю предупреждение:

Невозможно разрешить переменную «status»

Как я могу это исправить?

Ответы [ 2 ]

3 голосов
/ 05 июня 2019

У вас проблема с областями, когда вы объявляете переменную внутри блока 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}">
2 голосов
/ 05 июня 2019

В соответствии с вашим обновленным кодом вам необходимо ссылаться на «статус» в 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 "offline" или "online" на сервере.Вы можете использовать тег JSP <%= %>, чтобы записать его значение в ваш поток HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...