Здравстуйте. Есть такая проблема. Существует страница login.jsp, где пользователь вводит логин и пароль. Этой форме соответствует класс LoginForm. В LoginFrom реализован метод validate() для проверки на непустые значения в этих полях. Если юзер оставил пустыми поля, то вернется список ошибок ActionErrors, которые я потом отображаю в login.jsp: <html:errors property="password" /> Так вот, проблема в том, что первоначально при загрузке данной страницы login.jsp отображаются вот эти «ошибки» <html:errors property="password" /> и <html:errors property="login" />. Вопросы: 1. Почему так происходит? 2. Как это исправить ? LoginForm.java Код | public class LoginForm extends ActionForm { private String login; private String password; public void reset(ActionMapping mapping, HttpServletRequest request) { login = ""; password = ""; }
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) { ActionErrors errors = new ActionErrors(); if (login == null || login.trim().equals("")) { errors.add("login", new ActionMessage("error.login.empty")); } if (password == null || password.trim().equals("")) { errors.add("password", new ActionMessage("error.password.empty")); } return errors; } public String getLogin() { return login; }
public void setLogin(String login) { this.login = login; }
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; } }
|
login.jsp Код | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib uri="jstl/c" prefix="c"%> <%@ taglib uri="jstl/fmt" prefix="fmt"%> <%@ taglib uri="/tags/struts-html" prefix="html"%> <%@ taglib uri="/tags/struts-bean" prefix="bean"%>
<html:html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link rel="stylesheet" type="text/css" href="style.css"> <title>Login Page</title> </head> <body>
<table> <tr> <td> <H1><bean:message key="login.enter"/></H1> </td> </tr> <tr> <td> <FORM action="login.do" method="post" onsubmit=""> <table> <tr> <td><input type="hidden" name="method" value="enter" /></td> <td></td> </tr> <tr> <td class="login"><fmt:message key="userFields.login"/>:</td> <td><input type="text" name="login" /></td> </tr> <tr> <td colspan="2" class="error"><html:errors property="login" /></td> </tr> <tr> <td><fmt:message key="userFields.password"/>:</td> <td><input type="password" name="password" /></td> </tr> <tr> <td colspan="2" class="error"><html:errors property="password" /></td> </tr> <tr> <td><input type="submit" value="<fmt:message key="button.enter"/>" /></td> <td></td> </tr>
</table> </FORM> </td> </tr> </table> </body>
</html:html>
|
index.jsp Код | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link rel="stylesheet" type="text/css" href="style.css"> <title>Index Page</title> </head> <body> <c:redirect url="login.do?method=view"/> </body> </html>
|
struts-config.xml Код | <action name="loginForm" path="/login" scope="request" type="by.lorry.web.action.LoginAction" validate="true" parameter="method" input="/WEB-INF/jsp/login.jsp"> <forward name="view" path="/WEB-INF/jsp/login.jsp"/> <forward name="success" path="/welcome.do" redirect="true"/> </action>
|
ничего не забыл ? )
|