我有一个带有维护对象的struts2表单.维护有不同类型-为了简洁起见,我们说有RemovePart和InstallPart.该表单同时包含这两个字段,但是用户只能看到一个-这是基于用户在第一个下拉菜单中的选择.
确定我的Action收到数据后要实例化哪个Maintenance类的正确(最佳方法)是什么?到目前为止,我能想到的最好的方法是,尽管我不禁想到有更好的方法可以做到.
EDIT 6/24 14:18 GMT:RemovedPart和InstalledPart类的字段彼此不对应.
public class Maintenance {
private String maintenanceType;
private String removedSerialNumber;
private String removedPartName;
private String removedPartDescription;
private String removedPartPosition;
private String installedSerialNumber;
private String installedPartName;
private String installedPartSource;
// getters and setters
}
public class RemovedPart {
private String serialNumber;
private String partName;
private String partDescription;
private String partPosition;
public static createRemovedPart(Maintenance maintenance) {
return new RemovedPart(maintenance.getRemovedSerialNumber(),
maintenance.getRemovedPartName(), maintenance.getRemovedPartDescription(),
maintenance.getRemovedPartPosition());
}
private RemovedPart() {
this.serialNumber = serialNumber;
this.PartName = partName;
this.partDescription = partDescription;
this.partPosition = partPosition;
}
// getters and setters
}
public class InstalledPart {
//similar to RemovedPart
}
public class MaintAction extends ActionSupport {
Maintenance maintenance;
public String execute() {
if (maintenance.getMaintenanceType().equals("remove")) {
RemovedPart removed = RemovedPart.createRemovedPart(maintenance);
} else {
// you get the idea
}
// more logic
return SUCCESS;
}