Action处理请求参数

Posted yz-bky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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}

 

以上是关于Action处理请求参数的主要内容,如果未能解决你的问题,请参考以下文章

实现Action类

Struts2struts2处理请求参数及其校验

spring in action 5.1 小结

Struts2------Result处理&获取页面请求参数&API

Struts2 的Action中取得请求参数值的几种方法

wordpress的ajax请求