Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Struts 2中使用ModelDriven提供两种表单_Java_Jsp_Struts2_Model Driven - Fatal编程技术网

Java 如何在Struts 2中使用ModelDriven提供两种表单

Java 如何在Struts 2中使用ModelDriven提供两种表单,java,jsp,struts2,model-driven,Java,Jsp,Struts2,Model Driven,我有这个代码来实现ModelDriven机制 public class Input_newAction extends CommonAction implements ModelDriven<InputForm> { private InputForm form = new InputForm(); @Override public InputForm getModel() { return form; } } 不能对同一接口实现两

我有这个代码来实现
ModelDriven
机制

public class Input_newAction extends CommonAction implements ModelDriven<InputForm> {

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

不能对同一接口实现两个或多个专门化

相反,您可以为表单创建一个接口或抽象类,专门化
ModelDriven
,并通过实现
ModelDriven
getModel()
返回该接口

调用操作时,可以检查某些条件(参数、方法或映射),并返回相应的模型以符合指定的条件

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;
  }
}
公共类输入\u newAction扩展CommonAction实现模型驱动{
私有布尔值;
公共setPar(布尔par){
这是PAR=PAR;
} 
@凌驾
公共公共表单getModel(){
如果(标准杆)
返回输入形式;
其他的
返回复印件;
}
}

我认为这是不可能的(不是100%确定)。可以将嵌套对象与一个域对象一起使用,也可以使用简单的对象映射代替模型驱动。
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;
  }
}