Action处理请求参数

在Struts2中,页面请求分为两种方式,分别是字段驱动和模型驱动,字段驱动也属于属性驱动

  属性驱动是指通过字段进行数据传递,两种情况:

  1,与基本数据类型的属性对应

     【1】编写Action类

  

public class login {
    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;
    }
    public String execute()
    {
        ActionContext context = ActionContext.getContext();
        if("yz".equals(username) && "123".equals(password))
        {
            //把username存在context里然后在jsp页面使用${}接收
            context.put("qwe", username);
            return "success";
        };
        return "success";
    };
}

      【2】编写配置文件

      【3】编写jsp页面

 

       在success.jsp加入${qwe}用于接收用户名字

  2,直接使用域对象

      【1】编写User实体类 并且加入get,set方法

      【2】编写Action类

        

public class UserAction extends ActionSupport implements ServletRequestAware{
    private User user;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
    
    HttpServletRequest request;
    
    @Override
    public void setServletRequest(HttpServletRequest request) {
        this.request=request;
    }
    
    public String execute()
    {
        System.out.println(user.getUsername());
        System.out.println(user.getPassword());
        if("sss".equals(user.getUsername()) && "123".equals(user.getPassword()))
        {
            request.setAttribute("username",user.getUsername());
            return "success";
        };
        return "success";
    };
    
}

      【3】编写配置文件

      【4】编写jsp页面

     在success.jsp页面加入${username}

  模型驱动

  模型驱动通过实现ModelDriven接口来接受请求参数,Action必须实现ModelDriven接口

  并且要从写getModel()方法,这个方法返回的就是Action所使用的数据模型对象

    【1】编写User实体类 并且加入get,set方法

 

    【2】编写Action类

public class UserAction2 extends ActionSupport implements ServletRequestAware,ModelDriven<User>{
    HttpServletRequest request;
    private User user=new User();
    @Override
    public User getModel() {
        return user;
    }

    @Override
    public void setServletRequest(HttpServletRequest request) {
        this.request=request;
    }
    public String execute()
    {
        if("sss".equals(user.getUsername()) && "123".equals(user.getPassword()))
        {
            request.setAttribute("user", user);
            return "success";
        };
        return "success";
    };

}

    【3】编写配置文件

    【4】编写jsp页面

     在success.jsp页面加入${user.username}

原文地址:https://www.cnblogs.com/yz-bky/p/12603979.html