代码之家  ›  专栏  ›  技术社区  ›  Mahmoud Saleh

是否根据标志在JSP页面中显示通知?

  •  1
  • Mahmoud Saleh  · 技术社区  · 14 年前

    我在JSP页面中有HTML代码,我希望只有在用户提交数据并重定向到该页面之后才显示它。所以我必须在链接中设置一个成功标志作为参数,比如:

    http://site.com/page?success=true
    

    没有发送请求,因为它将在我重定向后丢失 我不想把它作为参数发送到链接中,我正在考虑另一种方法 还有如何发送的想法?因此链接将是:

    http://site.com/page
    

    我可以显示HTML代码吗?

    1 回复  |  直到 14 年前
        1
  •  1
  •   BalusC    14 年前

    只需将其设置为请求属性。

    if (/* form is succesfully submitted */) {
        request.setAttribute("success", true);
    }
    request.getRequestDispatcher("page.jsp").forward(request, response);
    

    使用 JSTL c:if 标记根据el表达式有条件地呈现内容。

    <c:if test="${success}">
        Your notification here.
    </c:if>
    

    如果您想在重定向后幸存,那么需要将其设置为会话属性:

    if (/* form is succesfully submitted */) {
        request.getSession().setAttribute("success", true);
    }
    response.sendRedirect("page.jsp");
    

    使用 c:remove 在第一次显示后删除它,这样后续请求就不会受到影响:

    <c:if test="${success}">
        <c:remove var="success" scope="session" />
        Your notification here.
    </c:if>