JSP сервлет JSTL - PullRequest
       12

JSP сервлет JSTL

0 голосов
/ 30 августа 2018

Когда я отправляю атрибут 'сохранено' из сервлета в jsp, если он равен true, я показываю сообщение msg в противном случае, я хочу присвоить ему значение false во втором обновлении.

Servlet:

 saved = true;
 request.setAttribute("saved", saved);
 response.sendRedirect("temp/pr_home.jsp");

JSP:

<c:choose>

        <c:when test="${saved==true}">

                <c:out value="${saved}"> </c:out>
            <div class="alert-box success" role="alert" >
                    Project Review has been saved! <a href="pr_home.jsp" > click here to see details  </a>
            </div>
            <br />

        </c:when>    

        <c:otherwise>
            <div class="alert-box failure" role="alert">
                    This is a danger alert—check it out!
            </div>
        </c:otherwise>

    </c:choose>

Вид: enter image description here

Флаг-переменная «сохранен» все еще в true все время !! Таким образом, при каждом обновлении страницы также появляется предупреждающее сообщение: (

Извините за мой английский.

спасибо за вашу помощь.

1 Ответ

0 голосов
/ 03 сентября 2018

Проблема в том, как вы перенаправляете на .jsp.
Потому что метод .sendRedirect (String path) не передает объекты запроса и ответа.
Обычно вы используете эту технику, когда хотите перенести управление на URL-адрес вне вашего приложения.
Поэтому я предлагаю этот метод для вызова страницы JSP:

getServletContext.getRequestDispatcher("temp/pr_home.jsp").forward(request, response);

А для .setAttribute (String name, Object o) лучше использовать класс-оболочку, например:

request.setAttribute("saved", new Boolean(saved));
...