Я создал страницу входа с проверкой.Проблема в том, что всякий раз, когда я пытаюсь проверить форму, как я даю нулевое поле, это должно дать мне логику проверки.Но проблема в том, что он напрямую переходит на страницу сбояЭто не относится к методам, которые я написал для проверки.Я создал интерфейс с абстрактным методом, и этот метод определен в файле validator.java, но эта логика не проверяется.
Я хочу, чтобы он проверял, есть ли какая-либо ошибка проверки или нет,Если есть какая-либо ошибка проверки, просто измените значение логического флага на false.А затем отобразить ошибку проверки.Страница сбоя предназначена только для случая, когда пароль не совпадает с заданным паролем.
Это страница входа в систему
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<html>
<head>
<title>Login Example</title>
</head>
<body>
<html:form action="/Login" >
Username : <html:text property="userName" /><html:errors property = "userName"/>
<br>
Password : <html:password property="password" /><html:errors property = "password"/>
<br>
<html:submit value="Login" />
</html:form>
</body>
</html>
Это web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>LoginPage</display-name>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
</web-app>
Это Struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="loginForm" type="com.loginForm.loginForm"/>
</form-beans>
<action-mappings>
<action name="loginForm" input = "/login.jsp" validate = "true" parameter = "com.loginForm.ForValidation" path="/Login" type="com.loginAction.loginAction" >
<forward name="success" path="/success.jsp"/>
<forward name="failure" path="/failure.jsp"/>
</action>
</action-mappings>
<message-resources parameter = "com.login.resources.AppliationResources" />
</struts-config>
Это loginForm.java
package com.loginForm;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
public class loginForm extends ActionForm implements ForValidation{
String userName = null;
String password = null;
boolean flag = true;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public void reset(ActionMapping mapping, HttpServletRequest request) {
this.password = null;
this.userName = null;
}
@Override
public boolean evaluate(ActionForm form, ActionMessages msg) {
// TODO Auto-generated method stub
System.out.print("loginForm");
return flag;
}
}
Это ForValidation
package com.loginForm;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMessages;
public interface ForValidation {
boolean evaluate(ActionForm form,ActionMessages msg);
}
Это валидатор
package com.loginForm;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
public class validator implements ForValidation{
public boolean evaluate(ActionForm form,ActionMessages msg){
loginForm lf = (loginForm) form;
System.out.print("validator");
if(lf.userName == null ||lf.userName.length() == 0){
lf.flag = false;
msg.add("userName",new ActionMessage("UserName.Can.not.be.Empty"));
System.out.print("pr");
}
if(lf.password == null || lf.password.length() == 0){
msg.add("password",new ActionMessage("password.not.entered"));
}
if(lf.userName.length() < 5 ){
msg.add("userName",new ActionMessage("userName.Limit"));
}
return lf.flag;
}
}
Это loginAction
package com.loginAction;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.loginForm.loginForm;
public class loginAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
loginForm lForm = (loginForm) form;
if (lForm.getUserName().equalsIgnoreCase("Anubhav")
&& lForm.getPassword().equals("mishra")) {
return mapping.findForward("success");
} else
System.out.print("loginAction");
return mapping.findForward("failure");
}
}
Это страница с ошибкой
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2>you have entered a wrong password</h2>
<h3>want to try again go to the below link</h3>
<a href= "login.jsp">Click HerE</a>
</body>
</html>
Это страница успеха
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<html>
<head>
<title>Successful Login Page</title>
</head>
<body>
<h2>Welcome
<bean:write name="loginForm" property="userName" />
</h2>
<a href="login.jsp">Logout</a>
</body>
</html>
Это свойствафайл
UserName.Can.not.be.Empty = Please Enter UserName
password.not.entered = Please Enter Password
userName.Limit = UserName cannot be less than 5