实现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 ,意思是直接把实体类当成页面数据的收集对象。

原文地址:https://www.cnblogs.com/guanghuiqq/p/2652215.html