Пример ошибки приложения для входа в Struts 1

Я новичок в Struts и пытался выполнить форму входа. Но он не выполняется после конструктора по умолчанию в классе ACTION.


ЛогинФорма.java

package struts.login.action;

import org.apache.struts.action.ActionForm;

@SuppressWarnings("serial")
public class LoginForm extends ActionForm {

public LoginForm() {

}

private String username;
private String password;
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;
}


}

LoginAction.java

package struts.login.action;

import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class LoginAction extends Action {

private final static String SUCCESS = "success";
private final static String FAILURE = "failure";
//private final static String FAILURE = "failure";

public LoginAction() {
    System.out.println("default constructor of Login Action");
}

@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
        ServletRequest request, ServletResponse response) throws Exception     {

    LoginForm loginForm = (LoginForm) form;
    if(loginForm.getUsername().equals(loginForm.getPassword())){
        return mapping.findForward(SUCCESS);    
    }
    else{
        return mapping.findForward(FAILURE);    
    }

}
}

Логин.jsp

<%@ taglib uri="/WEB-INF/tld/struts-html.tld" prefix="html"%>
<html>
<head>
<title>Login Page</title>
</head>
<body>
<div style="color:red">

</div>
<html:form action="/Login" method="get">
    User Name :<html:text property="username"/><br>
    Password  :<html:password property="password"/>
    <html:submit value="Login Here" />
</html:form>
</body>
</html>

успех.jsp

<html>
<head>
<title>Insert title here</title>
</head>
<body>
Successfully logged in!
</body>
</html>

сбой.jsp

<html>
<head>
<title>Insert title here</title>
</head>
<body>
login failed please try again!
</body>
</html>

распорки-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>
<form-beans>
    <form-bean name="loginForm" type="struts.login.action.LoginForm">
    </form-bean>
</form-beans>

<action-mappings>
    <action path="/Login" name="loginForm"             type="struts.login.action.LoginAction" >
    <forward name="success" path="/success.jsp"></forward>
    <forward name="failure" path= "/failure.jsp"></forward>
    </action>


</action-mappings>

</struts-config>

веб.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<!-- Standard ActionServlet Configuration -->
<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>
    <init-param>
        <param-name>application</param-name>
        <param-value>ApplicationResources</param-value>
    </init-param>
    <init-param>
        <param-name>debug</param-name>
        <param-value>3</param-value>
    </init-param>
    <init-param>
        <param-name>detail</param-name>
        <param-value>3</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<!-- Standard ActionServlet Mapping -->
<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

<!-- Struts Tag Library Descriptors -->
<jsp-config>
<taglib>
    <taglib-uri>/WEB-INF/tld/struts-html.tld</taglib-uri>
    <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location>
</taglib>
</jsp-config>
</web-app>

Я включил файл struts-html.tld в папку WEB-INF/tld. После входа в систему с именем пользователя и паролем он не перенаправляется ни на страницу success.jsp, ни на страницу failure.jsp.


person Roikka    schedule 16.08.2013    source источник
comment
Добро пожаловать в Stackoverflow. Какой тип исключения у вас есть?   -  person Naveen Kumar Alone    schedule 16.08.2013
comment
если вы новичок в распорках и читаете их для собственного ознакомления, то я предлагаю начать со Struts2, а не с распорок, поскольку они уже объявили об окончании срока службы.   -  person Umesh Awasthi    schedule 16.08.2013
comment
Я не получаю никаких исключений в своей консоли. Так что я подумал, что это может быть связано с банками.   -  person Roikka    schedule 16.08.2013
comment
консоль, показывающая это... последняя часть окна консоли, которую он выполняет до конструктора по умолчанию , 2013 16:00:01 org.apache.struts.chain.commands.servlet.CreateAction createAction INFO: Инициализировать действие типа: struts.login.action.LoginAction конструктор по умолчанию действия входа   -  person Roikka    schedule 16.08.2013


Ответы (1)


Это связано с тем, что вы передали ServletRequest и ServletResponse в методе выполнения в классе действий вместо HttpServletRequest и HttpServlet Response. Используйте как показано ниже.

public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response) throws Exception     {
}

и импортируйте эти вещи:

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

Надеюсь получится..

person ganesh ganee    schedule 29.06.2016