实现ModelDriver接口的功能(转)
ModelDriver接口 来自com.opensymphony.xwork2.ModelDriven。是xwork-2.1.2-750.jar包的东西。
下面是源码:
package com.opensymphony.xwork2;
public abstract interface ModelDriven<T> { public abstract T getModel(); }
该接口只有一个getModel()方法。主要作用是封装Object对象。实现接口时可以指定某个具体的Object对象类,如:
public class progressQueryAction extends CentricDefaultActionSupport implements Preparable,ModelDriven<LossSitesurvey>{
public LossSitesurvey getModel() {
return lossSitesurvey;
}
}
当jsp页面中需要该对象的属性时,直接model.属性名即可得到该属性。而不用再在action中编写该对象的getset方法了,对象.属性名了。相当于默认的对象封装。方便操作。
使用ModelDriven的方式。该action继承ModelDriven接口,实现getModel()方法,方法只返回一个模型对象,默认转换Object。
最后Hello.jsp中可以使用<s:property
value=".."/>取值,value直接使用相应的age,name等。而action虽然提供的getModel()方法,但因为转为了Object,而Object不能提供取值的方法,所以无法使用value="model.xxx"来取值。
所谓ModelDriven ,意思是直接把实体类当成页面数据的收集对象。