我正在使用jsp,javascript等開發我的第一個webapp,初始頁面是「login.jsp」。在該頁面中,有一個到註冊頁面的鏈接,當用戶通過Servlet提交註冊表單時,他會被髮送回登錄頁面。但我希望在頁面加載的同時在登錄頁面內顯示成功警報。如何在重定向到下一頁後顯示div?
我不知道確切的方法,使這一切成爲可能。我想過在servlet中設置一個像「notifier」這樣的請求屬性,所以登錄頁面知道用戶是否來自注冊。但是,我不確定如何「讀取」該屬性。我已經嘗試過使用JavaScript,jsp等等。沒有任何工作適合我。 此外,我不知道是否應該使用RequestDispatcher.forward()重定向,並將通知程序設置爲會話屬性。 (在這裏我還有一個問題,在登錄頁面的樣式表沒有加載)。
這是一些在註冊頁面:
//....
<form action="/servlet/UpdateUser" method="POST" accept-charset="utf-8" class="form" role="form">
//....
<button class="btn btn-lg btn-block signup-btn" type="submit" name="signup">Create my account</button>
</form>
//....
一些的servlet:
//servlet
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html");
if (req.getParameter("signup") != null) {
User user = new User();
//user setters and register
//..
//Should i use (?):
//req.setAttribute("SignUp", true);
} //..
//rest of the servlet
resp.sendRedirect("../login.jsp");
}
一些登錄頁面:
//Rest of Login Page
//Here is something i've tried.
<script type="text/javascript">
window.onload = function() {
var b = <%request.getAttribute("SignUp");%>;
if (b) document.getElementById('success').style.display = 'block';
else document.getElementById('success').style.display = 'none';
}
</script>
//Rest of Login Page
<body>
//..
<div class="alert alert-success" id="success">
<strong>Success!</strong> You can now login.
</div>
//..
</body>
//Rest of Login Page
PD:這是我的第一個問題。
我用'req.setAttribute( 「註冊」,真)'然後'req.getRequestDispathcer( 「../的login.jsp」)。前(REQ,RESP)',但問題是對的閱讀login.jsp中的屬性,除了第一次,該屬性不存在。 '' – BrunoLedesma
div無論如何正在顯示。 – BrunoLedesma
你應該嘗試傳遞一個字符串作爲屬性'req.setAttribute(「註冊」,「真」),然後比較它像'if(su ===「true」)''。 請注意,您也可以將整個對象作爲屬性發送,然後使用'$ {objectName.fieldName}'訪問該對象的字段。 – solstinger