2

ModelDrivenメカニズムを実装するためのこのコードがあります。

public class Input_newAction extends CommonAction implements ModelDriven<InputForm> {

    private InputForm form = new InputForm();
    @Override
    public InputForm getModel() {
        return form;
    }
}

問題は、別のフォームを に渡す必要があることInput_newActionです。これを行う方法?

public class Input_newAction extends CommonAction implements ModelDriven<InputForm>, 
ModelDriven<CopyForm> {
...
}
4

1 に答える 1

0

同じインターフェースの2 つ以上の特殊化を実装することはできません。

代わりに、 を特殊化し、の実装をModelDriven介してそのインターフェイスを返すフォーム用のインターフェイスまたは抽象クラスを作成できます。getModel()ModelDriven

アクションが呼び出されると、いくつかの条件 (パラメーター、メソッド、またはマッピング) をチェックし、指定された条件に適合する対応するモデルを返すことができます。

public class Input_newAction extends CommonAction implements ModelDriven<CommonForm> {
  private boolean par;
  public setPar(boolean par){
    this.par = par;
  } 

  @Override
  public CommonForm getModel() {
    if (par)
     return inputForm;  
    else
     return copyForm;
  }
}
于 2013-06-07T10:47:00.120 に答える