【问题标题】:Showing error message on same page with a Session in JSP?在 JSP 中的会话与同一页面上显示错误消息?
【发布时间】:2013-02-19 09:32:10
【问题描述】:

我有这种情况,我需要显示如果用户没有输入正确的密码,程序将在会话中放置一条适当的消息,并将调度回登录 jsp 页面并显示该消息。

我也检查了这个,Redirect to the same page but with a message in it

但是当我尝试实现答案时,日食在代码上给了我一条红线。

这是我的代码,

String message = "Wrong Password!";

HttpSession session = session.setAttribute("message", message);

显示的错误是Type Mismatch: Cannot Convert to from void to HttpSession

任何想法我错了或我该怎么做?

【问题讨论】:

  • eclipse 在代码上给了我一条红线 然后有一些错误。你需要告诉我们它显示了什么错误

标签: java jsp session servlets


【解决方案1】:

session.setAttribute() 返回“void”而不是“HttpSession”。

您需要从request 中获取session,然后在session 属性上使用setAttribute()

【讨论】:

    【解决方案2】:
    session.setAttribute("message", message);
    

    这个返回类型是无效的,因此你指向HttpSessoin Object,所以它给出了显示编译器错误。

    使用这个

    HttpSession session = request.getSession(true);
    session.setAttribute("message", message);
    

    【讨论】:

    • 糟糕的设计!这种错误应该在请求范围内,而不是在会话范围内。
    【解决方案3】:

    只是setAttribute() 方法不会返回会话对象。

    【讨论】:

      【解决方案4】:

      HttpSession session = session.setAttribute("message", message);

      上面一行是错误的。你只需要做一个......

      session.setAttribute("message", message);
      

      就是这样。 并在获取会话值的同时在jsp页面上。

      out.println(session.getAttribute("message"));
      

      <%=session.getAttribute("message")%>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-04
        • 2023-03-27
        • 2015-11-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-07
        • 1970-01-01
        相关资源
        最近更新 更多