我有这段代码来实现模型驱动的机制。
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;
}
}