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;
}
}