struts2接收前端页面表单传来的参数进行登录验证常用的两种方法

第一种方法
在Action类中定义两个成员变量,注意两个成员变量的属性名必须与前端表单name的属性名一致。提供setter方法
index.jsp前端表单:

  <form action="user_login" method="post">
    <table>
      <tr>
        <td>用户名:<input type="text" name="username"></td>
        <td>密码:<input type="password" name="password"></td>
        <td><input type="submit" value="登录"></td>
      </tr>
    </table>
  </form>
public class LoginAction extends ActionSupport {
    private String username;
    private String password;

    public void setUsername(String username) {
        this.username = username;
    }

    public void setPassword(String password) {
        this.password = password;
    }
    public String login(){
        if("admin".equals(username)&&"pass".equals(password)){
            return "success";
        }
        return "error";
    }
}

以下是struts.xml配置文件

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

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

<struts>
    <package name="default" namespace="/" extends="struts-default">
        <action name="user_login" class="com.jiuyue.controller.LoginAction" method="login">
            <result name="success">sayHello.jsp</result>
            <result name="error">error.jsp</result>
        </action>
    </package>
</struts>```

登录界面
这里写图片描述
验证成功跳转到sayHello.jsp
这里写图片描述

第二种方法
使用Struts2中的ModelDriven模型驱动方法。首先Action类必须实现ModelDriven接口,同样把表单传来的数据封装起来,Action类中必须实例化该对象,并且要重写getModel()方法。表单传来的参数封装在user对象中
表单属性名不需要加上引用user对象,直接传参数名就可以。

import pojo.User;

public class LoginAction extends ActionSupport implements ModelDriven<User>{
    private User user;
    @Override
    public User getModel() {
        if (user==null){
            user = new User();
        }
        return user;
    }
    public String login(){
        System.out.println("username="+user.getUsername());
        if ("admin".equals(user.getUsername())&&"pass".equals(user.getPassword())){
            return "success";
        }
        else
            return "error";
    }

效果跟上面一样可以接收参数进行登陆验证
登录界面
这里写图片描述
验证成功跳转到sayHello.jsp
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_37745470/article/details/81584901