属性驱动
在Action中创建一个和页面中name属性同名的私有化变量,提供成员变量的get/set方法(非必须)
public String hello(){
System.out.print(username+"这是属性驱动");
System.out.print(password);
return "success";
}
private String username;
private String password;
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
<!-- 属性驱动表单 -->
<form action="Structs.action" method="post">
<input type="text" name="username"><br>
<input type="password" name="password">
<input type="submit" value="提交">
</form>
对象驱动
- 1.创建实体类:对应form中input 的name
- 2.在action创建对象(private User user=new user();)
- 3.提供该对象的get/set方法
- 4.注意:form中空间name属性要符合 对象.name
//表单写name前面加一个user.username user.password与对象名相同
private User user =new User();
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public String go ( ) {
System.out.print(this.user.getUsername()+"这是对象驱动"+this.user.getPassword());
return SUCCESS;
}
<!-- 对象驱动表单 -->
<form action="Structs1.action" method="post">
<input type="text" name="user.username"><br>
<input type="password" name="user.password">
<input type="submit" value="提交">
</form>
模型驱动
- 1.需要实现ModelDriven接口制定相应泛型->将要获取的对象
- 2.根据泛型确定某个类的对象
- 3.重写getModel方法,返回对象
- 注意: 不需要在前台form中input中的name指定对象.属性名
public class ModelAction extends ActionSupport implements ModelDriven<User>{
private User user =new User();
public String drive() {
System.out.println(user.getPassword()+"模型驱动"+user.getUsername());
return SUCCESS;
}
@Override
public User getModel() {
return user;
}
}
<!-- 模型驱动表单 -->
<form action="Structs2.action" method="post">
<input type="text" name="username"><br>
<input type="password" name="password">
<input type="submit" value="提交">
</form>