上篇文章写到使用属性接收参数,但是那个不是常用的。域模型才是最常用的。首先还是先看一下对应的Action类:
package com.mengxiangyue.struts2.user.action;
import com.mengxiangyue.struts2.user.model.User;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport {
private User user;
public String add() {
System.out.println("name=" + user.getName());
System.out.println("age=" + user.getAge());
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
这里使用到了User类,下面给出:
package com.mengxiangyue.struts2.user.model;
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
这个
User
类,就是一个
javabean
。
这两个类写好了之后,struts.xml配置好了之后,我们就可以使用下面的方法进行调用了:<a href="user/user!add?user.name=a&user.age=8">。在这里我们可以直接使用user对象+”.”+属性名进行传值。其他的工作struts都会帮助我们完成的。Struts首先会new一个Action对象,然后new一个User对象user,我们在Action中只是声明了此对象,struts会自动帮我们赋值的。然后会调用对应的user的set方法,并且将值赋给它们。这样我们就可以使用了。
上面的程序运行的时候会在后台答应出来对应的值。
另外还有一种方法叫ModelDriven,这种不是太常用,所以就不介绍了,自己百度去。