java-如何根据表单字段选择要实例化的对象类型?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何根据表单字段选择要实例化的对象类型?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2426字,纯文字阅读大概需要4分钟。
内容图文
![java-如何根据表单字段选择要实例化的对象类型?](/upload/InfoBanner/zyjiaocheng/679/66860c1222af4a3dbc21b11031236592.jpg)
我有一个带有维护对象的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;
}
解决方法:
我们不知道您的设计有多复杂或有多大,但是从显示的内容来看,如果Maintenance类声明了重复字段(例如,已删除和已安装的序列号)而没有同时使用它们,则因此,它们仅声明为由页面中选择的维护类型填充…然后,您不需要3个对象,也不需要重复的字段:
>声明具有单个字段的单个Maintenance类
>将其发布到不同的操作中,一个用于移除,一个用于安装.
单独的类型将帮助您从两种类型所运行的方法中确定要处理的维护类型.但是,最好将其转换为枚举:
public enum MaintenanceType {
INSTALLATION(1), REMOVAL(2);
private int type;
private MaintenanceType(int t) {
type = t;
}
public int getType() {
return type;
}
}
public class Maintenance {
private MaintenanceType type;
private String serialNumber;
private String partName;
// getters and setters
public boolean isInstallation(){
return type == MaintenanceType.INSTALLATION;
};
public boolean isRemoval(){
return type == MaintenanceType.REMOVAL;
};
}
内容总结
以上是互联网集市为您收集整理的java-如何根据表单字段选择要实例化的对象类型?全部内容,希望文章能够帮你解决java-如何根据表单字段选择要实例化的对象类型?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。