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 ,意思是直接把實體類當成頁面數據的收集對象。