2013-02-20 123 views
-1

這從我的以下問題如下,Showing error message on same page with a Session in JSP?無法使用會話在同一頁面上顯示消息?

我不能顯示在同一個消息,它只是又回到了同一頁,但沒有消息,

這裏是我的代碼,

if (btn.equals("Sign Up")) { 
     if (pass.equals(confirmPass) && length > 6) { 

     String message = "You are Validated!"; 

     HttpSession session = request.getSession(true); 
     session.setAttribute("message", message);   
     RequestDispatcher rd = request.getRequestDispatcher("signUp.jsp"); 
     rd.forward(request, response); 
     out.println(session.getAttribute("message")); 

    } 

我的代碼中可能有什麼錯?

這裏是我的JSP,

<div align="center"> 
     <form action="Validate" method="POST"> 
      <table> 
       <tr> 
        <td>Enter Email</td> 
        <td><input type="text" name="txtEmail"></td> 
       </tr> 
       <tr> 
        <td>Select Password</td> 
        <td><input type="text" name="txtPassword"></td> 
       </tr> 
       <tr> 
        <td>Confirm Password</td> 
        <td><input type="text" name="txtConfirm"></td> 
       </tr> 
       <tr> 
        <td colspan="2"><input type="submit" name="submit" value="Sign Up"></td> 
       </tr> 

      </table> 
     </form> 
    </div> 
+0

發佈用於打印消息的jsp代碼 – Hiro2k 2013-02-20 00:53:00

+0

您的JSP頁面如何顯示消息? – stepanian 2013-02-20 00:53:01

+0

請參閱編輯。 :) – user99244 2013-02-20 00:58:47

回答

0

在JSP頁面中,使用此:

<c:out value="${sessionScope.message}" /> 
+0

請參閱編輯。 :) – user99244 2013-02-20 00:59:58

+0

不工作:(此外,我不想使用標籤:( – user99244 2013-02-20 01:02:30

+0

)您不必使用c:out標籤,只需執行$ {sessionScope.message}。c:out標籤用於轉義XML的安全性 – stepanian 2013-02-20 01:04:23

0

,因爲你不喜歡有JSTL標記在JSP,讓我們回到舊學校溶液:在JSP

<% 
    HttpSession session = request.getSession(true); 
    session.setAttribute("message","message"); 
    if(session != null && session.getAttribute("message") != null){ 
     %><h1><%= session.getAttribute("message")%></h1><% 
    } 
%> 

用空/空檢查內含Java中,當填充的後部將僅顯示錯誤消息呃驗證。

+0

出於某種原因,它是正在打印但不是在單擊「註冊」按鈕之後。 – user99244 2013-02-20 01:36:41

+0

這意味着**消息**屬性已經在用戶會話中。解決這個問題的最簡單方法是在驗證通過時從會話中刪除會話屬性。session.removeAttribute(「message」); – spiritwalker 2013-02-20 01:41:00

+0

我們不會在這裏感到困惑嗎?:PI只是想在用戶完成點擊之後顯示消息,而不是在o.O之前顯示消息 – user99244 2013-02-20 01:45:27

0

我認爲你不是很清楚jsp/servlethttpsession。只要會話屬性未被填充,該消息在註冊之前不會顯示。由於您在HttpSession中保存消息,因此您需要確保在驗證通過時刪除屬性。如果您不刪除它,用戶第一次註冊失敗後將始終顯示該消息。

如果你感到困惑,我想你可以忽略會議和使用要求代替。在這種情況下,您可以設置屬性來請求對象像session.getAttribute()request.getAttribute()這個

request.setAttribute("message", "error message"); 

而且在JSP中,變化,那麼有沒有辦法該消息可以在用戶註冊之前顯示。

相關問題