我有这段代码来实现模型驱动的机制。

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> {
...
}

最佳答案

您不能对同一接口实现两个或多个特殊化。相反,您可以为将专门用于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;
  }
}

09-13 05:00