2016.7.28 笔记-struts领域对象(问题原因)

来源:互联网 发布:淘宝李宁是真的吗 编辑:程序博客网 时间:2024/05/19 07:08

struts2,,可以通过在action中设置属性来获取页面的值。

User对象中包含两个字段:username和password,在Action中有一个User对象user,则在jsp中:

<form action="registPro" method="post">        用户名:<input type="text" name="user.name"/> <br/>        密码:<input type="text"   name="user.password"/><br/>         体重:<input type="text" name="user.weight"/><br/>        生日:<input type="text" name="user.birth"/><br/>        <input type="submit" value="提交">     </form>

当Struts2尝试设置user对象的username属性时,将依次调用以下的方法:

    action.getUser();     action.setUser(new?User());     action.getUser().setUserName();

Struts2首先尝试获得User对象的引用,当它发现User对象为null时,它将使用User类的默认构造方法创建一个User实例,并调用action的setUser()方法设置这个实例。这样,Struts2就可以设置Usser对象的username字段了。

所以user类中一定要有默认的构造方法,如果定义了带参的构造方法,显示的定义一下午餐的构造方法

package com.struts2.domain;import java.util.Date;public class User {    private Integer id;    private String name;    private String password;    private double weight;    private Date birth;    //public User() {    //}    public User(Integer id, String name, String password, double weight, Date birth) {        super();        this.id = id;        this.name = name;        this.password = password;        this.weight = weight;        this.birth = birth;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public double getWeight() {        return weight;    }    public void setWeight(double weight) {        this.weight = weight;    }    public Date getBirth() {        return birth;    }    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public void setBirth(Date birth) {        this.birth = birth;    }    @Override    public int hashCode() {        final int prime = 31;        int result = 1;        result = prime * result + ((name == null) ? 0 : name.hashCode());        result = prime * result + ((password == null) ? 0 : password.hashCode());        return result;    }    @Override    public boolean equals(Object obj) {        if (this == obj)            return true;        if (obj == null)            return false;        if (getClass() != obj.getClass())            return false;        User other = (User) obj;        if (name == null) {            if (other.name != null)                return false;        } else if (!name.equals(other.name))            return false;        if (password == null) {            if (other.password != null)                return false;        } else if (!password.equals(other.password))            return false;        return true;    }}

要不然user对象一直都是null….

0 0
原创粉丝点击