这来自我的以下问题,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 :(得分:0)
在JSP页面上,使用:
<c:out value="${sessionScope.message}" />
答案 1 :(得分:0)
因为你不喜欢在你的JSP中使用jstl标签,让我们回到旧学校解决方案:jsp中的inline java
<%
HttpSession session = request.getSession(true);
session.setAttribute("message","message");
if(session != null && session.getAttribute("message") != null){
%><h1><%= session.getAttribute("message")%></h1><%
}
%>
使用空/空检查,只有在验证后填充错误消息时才会显示错误消息。
答案 2 :(得分:0)
我认为你并不是很清楚 jsp / servlet 和 httpsession 。只要未填充会话属性,就会在注册前显示该消息。由于您在HttpSession中保存消息,因此您需要确保在验证通过时删除属性。如果您不删除它,则在用户首次注册失败后将始终显示该消息。
如果您感到困惑,我认为您可以忽略会话并使用请求。在这种情况下,您将属性设置为请求对象,如此
request.setAttribute("message", "error message");
在jsp中,从 session.getAttribute()更改为 request.getAttribute(),然后在用户签名之前无法显示消息起来。