部分代码
public class ReadAction implements Action {
String name;
String sex;
String birth;
public String getName() {
System.out.println("getName");
return name;
}
public void setName(String name) {
System.out.println("setName");
this.name = name;
}
public String getSex() {
System.out.println("getSex");
return sex;
}
public void setSex(String sex) {
System.out.println("setSex");
this.sex = sex;
}
public String getBirth() {
System.out.println("getBirth");
return birth;
}
public void setBirth(String birth) {
System.out.println("setBirth");
this.birth = birth;
}
public String execute() throws Exception {
System.out.println(name+" "+sex+" "+birth);
return "readSuccess";
}
}
这个是之前把参数写在ReadAction类里,对setter和getter的调用情况如下
setBirth
setName
setSex
execute 123 123 123
然后看到有个vo传参模式,就写了个这个例子
User类:
public class User {
String username;
String password;
String sex;
public String getSex() {
System.out.println("getSex");
return sex;
}
public void setSex(String sex) {
System.out.println("setSex");
this.sex = sex;
}
public String getUsername() {
System.out.println("getUsername");
return username;
}
public void setUsername(String username) {
System.out.println("setUsername");
this.username = username;
}
public String getPassword() {
System.out.println("getPassword");
return password;
}
public void setPassword(String password) {
System.out.println("setPassword");
this.password = password;
}
public User(){
this.username="admin";
this.password="admin";
this.sex="man";
}
}
LoginAction类
public class LoginAction implements Action {
User user=new User();
public User getUser() {
System.out.println("getUser "+user.getUsername()+" "+user.getPassword()+" "+user.getSex());
return user;
}
public void setUser(User user) {
System.out.println("setUser "+user.getUsername()+" "+user.getPassword()+" "+user.getSex());
this.user = user;
}
@Override
public String execute() throws Exception {
System.out.println(user.getUsername()+" "+user.getPassword()+" "+user.getSex());
if(user.getUsername().equals("struts2")){
return "loginSuccess";
}else{
return "loginFailure";
}
}
}
相关setter和getter的调用情况如下
getUsername
getPassword
getSex
getUser admin admin man
setPassword
getUsername
getPassword
getSex
getUser admin 123 man
setSex
getUsername
getPassword
getSex
getUser admin 123 123
setUsername
getUsername
getPassword
getSex
123 123 123
getUsername
为什么第二个vo传参在每次setter前都要先调用getUser()呢?