Strust2使用领域 对象接收用户输λ

Step1:在webroot目录下新建login.jsp文件,login.jsp向用户显示一个登陆表单,在用户输入用户名和密码后,提交个loginAction进行处理。login.jsp代码如下

<%@ taglib prefix="S" uri="/struts-tags" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title



    
    
    


注意代码中以粗体显示的部分。在 Step4中将详细介绍为什么果用这种格式。

Step2

userinfo对象作为领域对象。用于接收用户输入的登陆信息。userinfo类代码如下:

public class Userinfo {
    private String username;
    private String pwd;
    public String getUsername() {
        return username;
    }

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

    public String getPwd() {
        return pwd;
    }

    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

}
Step3:编写loginAction类

LoginAction 时用户置最请求进行处理, LoginAction 的代码如下:

public class ActionUser implements Action{
   private Userinfo userinfo;

    public Userinfo getUserinfo() {
        return userinfo;
    }

    public void setUserinfo(Userinfo userinfo) {
        this.userinfo = userinfo;
    }

    public String execute() throws Exception {
        if("admin".equals(userinfo.getUsername())&&"admin".equals(userinfo.getPwd())){
            return SUCCESS;
        }else{
            return LOGIN;
        }
    }
为了简单起见,我们直接在execute()方法中对象用户登陆信息进行了判断,如果登陆成功,返回SUCCESS结果代码("index.jsp");如果登陆失败,执行LOGIN结果代码("login.jsp").
在置是页面 login.jsp中, 有这样两句代码:

  
    
通过 Struts2 框架的散据拂直机制, 传递 user usemame 请求#数等同于调用:

action.getUserinfo.setUsername(.....)

但是我们注意到,在loginAction中,并没有创建如何的Userinfo类的实例对象,按理说程序应该会抛出NullPointerException。不过,在Struts2中不是什么问题,Struts2会遍历所有的请求参数,自动依次实例化如何用于填充数据的对象。例如:Struts2尝试设置Userinfo对象的username属性时,将依次调用一下方法:

action.getUserinfo();
action.setUserinfo(new Userinfo);
action.setUserinfo().setUsername();
Struts2 先尝试获得得 "UserInfo"'对象的引用,当它发现Userinfo对象为null时,它将使用Userinfo类的默认构造(无参构造方法)创建一个UserInfo实例,并调用actio的setUserInfo()方法设置这个实例,这样,Struts2就可以设置UserInfo对象的username字段了。

Step4:在Struts.xml文件中配置LoginAction:

代码如下:




    
        
            /index.jsp
            /login.jsp
        
    

























你可能感兴趣的:(Strust2使用领域 对象接收用户输λ)