Struts 1登录应用程序示例错误 [英] Struts 1 login application example error

查看:77
本文介绍了Struts 1登录应用程序示例错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Struts的新手,并尝试执行登录表单".但是在ACTION类中的默认构造函数之后,它不会执行.

I am new to Struts and tried to execute Login Form. But it's not getting executed after the default constructor in the ACTION class.

LoginForm.java

LoginForm.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

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);    
    }

}
}

Login.jsp

Login.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>

success.jsp

success.jsp

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

failure.jsp

failure.jsp

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

struts-config.xml

struts-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>

web.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页面

I have included struts-html.tld file in WEB-INF/tld folder. After login with username and password It's not redirected to either success.jsp or failure.jsp page

推荐答案

这是因为您在操作类的execute方法中而不是HttpServletRequest和HttpServlet Response中传递了ServletRequest和ServletResponse. 使用喜欢跟随

It is because you have passed ServletRequest and ServletResponse in execute method in action class instead of HttpServletRequest and HttpServlet Response.. Use Like Following

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

并导入以下内容:

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

希望它能正常工作.

这篇关于Struts 1登录应用程序示例错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆