JSP servlet JSTL

问题描述 投票:-1回答:1

当我从servlet将属性'saved'发送到jsp时,如果它等于true我会显示alert 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

标志变量'已保存'仍然一直保持为真!因此,每次刷新页面时都会出现警报消息:(

对不起我的英语不好。

谢谢您的帮助。

jsp jstl servlet-3.0 setattribute
1个回答
0
投票

问题是你如何重定向到.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));
© www.soinside.com 2019 - 2024. All rights reserved.