坚持每天写博文,积累下开发中的点点滴滴
3 使用ModelDriven接口,对请求数据进行封装(模型驱动)
对比一下下面两段代码,只从页面上说当然是第一种更加简单明了,举个例子,比如美工写页面,他能清楚地看出【name】是什么,但是却可能看不出什么是【model1.name】,为了解决这个问题。第三种方法产生。
Action获取请求的第一种方法:1.1.Action 本身作为model对象,通过成员setter封装(属性驱动方式)<br/>
<form action="paramAction0.action" method="post">
名字:<input type="text" name="name"/><br/>
年龄:<input type="text" name="age"/><br/>
<input type="submit" value="提交"/><br/>
</form>
Action获取请求的第二种方法:2.创建独立model对象,页面通过ognl表达式封装(属性驱动)
<form action="paramAction1.action" method="post">
名字:<input type="text" name="model1.name"/><br/>
年龄:<input type="text" name="model1.age"/><br/>
<input type="submit" value="提交"/><br/>
</form>
- 实现 ModelDriven接口,泛型是模型对象类型;
- 注入并实例化模型对象
- 生成get方法,返回模型
Action:
private static final long serialVersionUID = 1L;
//注入并实例化模型对象
private Model1 model1 = new Model1();
@Override
public String execute() throws Exception {
System.out.println(model1);
return NONE;
}
//生成get方法,返回模型
@Override
public Model1 getModel() {
return model1;
}
jsp:
Action获取请求的第三种方法:使用ModelDriven接口,对请求数据进行封装(模型驱动)
<form action="paramAction2.action" method="post">
名字:<input type="text" name="name"/><br/>
年龄:<input type="text" name="age"/><br/>
<input type="submit" value="提交"/><br/>
</form>
表单中属性简单并且使用模型传参
MVC模式:
- View–jsp
- Model–Model1.java
- Controler–Action
注意:第三种方法最大的缺陷是只有一个模型