public class User3Action extends ActionSupport implements ModelDriven<User> {

    private User user = new User();

    public User getModel() {
return user;
} @Override
public String execute() throws Exception {
System.out.println(user);
return NONE;
} }
		<form action="${pageContext.request.contextPath}/user3.action" method="post">
用户名
<input type="text" name="username" />
<br />
密码
<input type="password" name="password" />
<br />
<input type="submit" value="提交" />
</form>

  

页面:

用户名:<input type="text" name="username"><br/>

Action:

public class ParamAction3 extends ActionSupport implements ModelDriven<User>{

private User user = new User();

public User getModel() {

return user;

}

}

***** 实现ModelDriven<T> 必须手动构建封装对象.

* 模型驱动使用中最为广泛.Struts2中提供了一个单独的拦截器完成模型驱动的封装,而且Struts2中某些结构围绕模型驱动设计.

比较第二种和第三种方式:

* 第三种使用的比较多.第二种比较灵活的.第三种模型驱动的方式只能封装到一个实体对象.第二种方式封装到不同的实体中.

* 第三种方式提供的拦截器:

<interceptor name="modelDriven" class="com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"/>

* 第二种封装到不同的实体:

<input type=”text” name=”user.username”>

<input type=”text” name=”product.price”>

05-08 08:19