我正在尝试在登录时使用Javascript和JSP实现警报提示,但我看不到成功。到目前为止,我得到的只是一条错误消息,我希望将其作为提示。请帮帮忙。这就是我所拥有的:
Servlet端:
String userValidate = logindao.authenticateUser(loginbean);
if(userValidate.equals("SUCCESS")){
request.setAttribute("userName", userName);
request.getRequestDispatcher("/Home.jsp").forward(request, response);
}else{
request.setAttribute("errMessage", userValidate);
request.getRequestDispatcher("/Login.jsp").forward(request, response);
}我的JSP端:
<td><%=(request.getAttribute("errMessage") == null)
? ""
: request.getAttribute("errMessage")%></td>我的刀:
public class LoginDao {
public String authenticateUser(LoginBean loginbean){
String userName = loginbean.getUserName();
String password = loginbean.getPassword();
Connection conn = null;
String userNameDB = "";
String passwordDB = "";
DBConnection db = new DBConnection();
try{
conn = db.getDbConnection();
Statement st = conn.createStatement();
ResultSet rs = st.executeQuery("SELECT USER_NAME, P_WORD, WORK_CLASS FROM USER_LOGIN "
+ "where USER_NAME = '" + userName + "'");
while(rs.next()){
userNameDB = rs.getString("USER_NAME");
passwordDB = rs.getString("P_WORD");
}
if(userName.equalsIgnoreCase(userNameDB)&& password.equalsIgnoreCase(passwordDB)){
return "SUCCESS";
}
if(userName.equals("") || password.equals("")){
return "Username or Password is blank";
}
}catch(Exception asd){
System.out.println(asd);
}
return "invalid user credentials";
}
}如果证书是错误的,我得到的所有错误信息都打印在Page.How上,我可以将此作为提示吗?
发布于 2013-07-06 11:47:00
在JSP中添加以下内容
<c:if test="${not empty errMessage}">
<script>alert("${errMessage}");</script>
</c:if>我使用EL是因为在JSP中不推荐使用scriptlet。${attr}语法只是按顺序从页面、请求、会话或应用程序作用域中提取一个名为attr的属性的值作为测试。
编辑:(调试为)
<p>errMessage is: '<%= request.getAttribute("errMessage") %>'</p>
<c:if test="${not empty errMessage}">
<script>alert("${errMessage}");</script>
</c:if>
<% request.setAttribute("errMessage", "forced error message"); %>
<c:if test="${not empty errMessage}">
<script>alert("${errMessage}");</script>
</c:if>https://stackoverflow.com/questions/17499195
复制相似问题