gpt4 book ai didi

java - 如何在 spring mvc 4 上将表单值从 jsp 发布到 Controller 时解决 ClassCastException

转载 作者:行者123 更新时间:2023-12-02 13:32:59 27 4
gpt4 key购买 nike

我正在尝试更新实体。但是在将值发布到 Controller 时遇到 ClassCastException。当我尝试调试它时,它没有进入该方法。我将在这里发布我的源代码和 POJO 类。

驱动大师POJO类

@Id
@GeneratedValue
@Column(name = "ROW_ID")
private long row_id;

@NotEmpty
@Column(name = "DRIVER_NAME", nullable = false, length=50)
private String driverName;

@NotEmpty
@Column(name = "VEHICLE_NO", nullable = false, length=50)
private String vehicleNo;

@Column(name = "DRIVER_STATUS", nullable = false, length=50)
private int driverStatus;

@ManyToOne
@JoinColumn(name="DELZONE_ID")
private DeliveryZones deliveryZones;


//bi-directional many-to-one association to TaskMaster
@OneToMany(mappedBy="driverMaster")
private List<TaskMaster> taskMasters;

转换器类

public class DeliveryZoneToDriverConverter implements Converter<Object, DeliveryZones>{

static final Logger logger = LoggerFactory.getLogger(DeliveryZoneToDriverConverter.class);

@Autowired
DeliveryZoneService deliveryZoneService;

/**
* Gets UserProfile by Id
* @see org.springframework.core.convert.converter.Converter#convert(java.lang.Object)
*/
public DeliveryZones convert(Object element) {
Integer id = Integer.parseInt((String)element);
DeliveryZones profile= deliveryZoneService.findById(id);
logger.info("Profile : {}",profile);
return profile;
}

Controller

@RequestMapping(value = { "/driver/newdriver" }, method = RequestMethod.POST)
public String saveDriver(@Valid DriverMaster driverMaster, BindingResult result,
ModelMap model, final HttpServletRequest request) {

if (result.hasErrors()) {
return "driver/adddriver";
}



driverMaster.setDriverStatus(1);//to add active initially
driverService.saveDriverMaster(driverMaster);

model.addAttribute("success", "Driver " + driverMaster.getDriverName()
+ " Created successfully");
model.addAttribute("loggedinuser", getPrincipal());
// return "success";
return "driver/adddriversuccess";
}

获取错误

2017-03-30 18:10:27,052 INFO  [stdout] (default task-33) Hibernate: 
2017-03-30 18:10:27,053 INFO [stdout] (default task-33) select
2017-03-30 18:10:27,053 INFO [stdout] (default task-33) this_.ROW_ID as ROW_ID1_7_2_,
2017-03-30 18:10:27,054 INFO [stdout] (default task-33) this_.CITY_ID as CITY_ID3_7_2_,
2017-03-30 18:10:27,054 INFO [stdout] (default task-33) this_.DELZONE_NAME as DELZONE_2_7_2_,
2017-03-30 18:10:27,055 INFO [stdout] (default task-33) citymaster2_.ROW_ID as ROW_ID1_3_0_,
2017-03-30 18:10:27,055 INFO [stdout] (default task-33) citymaster2_.CITY_NAME as CITY_NAM2_3_0_,
2017-03-30 18:10:27,056 INFO [stdout] (default task-33) citymaster2_.state_id as state_id3_3_0_,
2017-03-30 18:10:27,056 INFO [stdout] (default task-33) statemaste3_.ROW_ID as ROW_ID1_17_1_,
2017-03-30 18:10:27,056 INFO [stdout] (default task-33) statemaste3_.country_id as country_3_17_1_,
2017-03-30 18:10:27,057 INFO [stdout] (default task-33) statemaste3_.STATE_NAME as STATE_NA2_17_1_
2017-03-30 18:10:27,057 INFO [stdout] (default task-33) from
2017-03-30 18:10:27,057 INFO [stdout] (default task-33) DELIVERY_ZONES this_
2017-03-30 18:10:27,058 INFO [stdout] (default task-33) left outer join
2017-03-30 18:10:27,058 INFO [stdout] (default task-33) CITY_MASTER citymaster2_
2017-03-30 18:10:27,058 INFO [stdout] (default task-33) on this_.CITY_ID=citymaster2_.ROW_ID
2017-03-30 18:10:27,058 INFO [stdout] (default task-33) left outer join
2017-03-30 18:10:27,059 INFO [stdout] (default task-33) STATE_MASTER statemaste3_
2017-03-30 18:10:27,059 INFO [stdout] (default task-33) on citymaster2_.state_id=statemaste3_.ROW_ID
2017-03-30 18:10:27,059 INFO [stdout] (default task-33) order by
2017-03-30 18:10:27,059 INFO [stdout] (default task-33) this_.DELZONE_NAME asc

2017-03-30 18:10:27,064 INFO [stdout] (default task-33) Hibernate:
2017-03-30 18:10:27,064 INFO [stdout] (default task-33) select
2017-03-30 18:10:27,064 INFO [stdout] (default task-33) countrymas0_.ROW_ID as ROW_ID1_4_0_,
2017-03-30 18:10:27,065 INFO [stdout] (default task-33) countrymas0_.COUNTRY_NAME as COUNTRY_2_4_0_
2017-03-30 18:10:27,065 INFO [stdout] (default task-33) from
2017-03-30 18:10:27,065 INFO [stdout] (default task-33) COUNTRY_MASTER countrymas0_
2017-03-30 18:10:27,065 INFO [stdout] (default task-33) where
2017-03-30 18:10:27,065 INFO [stdout] (default task-33) countrymas0_.ROW_ID=?

2017-03-30 18:10:27,089 INFO [com.aaratech.medtrack.dao.DriverDaoImpl] (default task-33) driverId : 5
2017-03-30 18:10:27,091 INFO [stdout] (default task-33) Hibernate:
2017-03-30 18:10:27,091 INFO [stdout] (default task-33) select
2017-03-30 18:10:27,091 INFO [stdout] (default task-33) this_.ROW_ID as ROW_ID1_8_2_,
2017-03-30 18:10:27,092 INFO [stdout] (default task-33) this_.CREATED_BY as CREATED_2_8_2_,
2017-03-30 18:10:27,092 INFO [stdout] (default task-33) this_.CREATED_DATE as CREATED_3_8_2_,
2017-03-30 18:10:27,092 INFO [stdout] (default task-33) this_.DELZONE_ID as DELZONE13_8_2_,
2017-03-30 18:10:27,092 INFO [stdout] (default task-33) this_.DRIVER_NAME as DRIVER_N4_8_2_,
2017-03-30 18:10:27,092 INFO [stdout] (default task-33) this_.DRIVER_STATUS as DRIVER_S5_8_2_,
2017-03-30 18:10:27,093 INFO [stdout] (default task-33) this_.EMAIL_ID as EMAIL_ID6_8_2_,
2017-03-30 18:10:27,093 INFO [stdout] (default task-33) this_.IMEI_NO as IMEI_NO7_8_2_,
2017-03-30 18:10:27,093 INFO [stdout] (default task-33) this_.IS_ACTIVE as IS_ACTIV8_8_2_,
2017-03-30 18:10:27,093 INFO [stdout] (default task-33) this_.MODIFIED_BY as MODIFIED9_8_2_,
2017-03-30 18:10:27,093 INFO [stdout] (default task-33) this_.MODIFIED_DATE as MODIFIE10_8_2_,
2017-03-30 18:10:27,094 INFO [stdout] (default task-33) this_.PHONE as PHONE11_8_2_,
2017-03-30 18:10:27,094 INFO [stdout] (default task-33) this_.VEHICLE_NO as VEHICLE12_8_2_,
2017-03-30 18:10:27,094 INFO [stdout] (default task-33) deliveryzo2_.ROW_ID as ROW_ID1_7_0_,
2017-03-30 18:10:27,094 INFO [stdout] (default task-33) deliveryzo2_.CITY_ID as CITY_ID3_7_0_,
2017-03-30 18:10:27,094 INFO [stdout] (default task-33) deliveryzo2_.DELZONE_NAME as DELZONE_2_7_0_,
2017-03-30 18:10:27,095 INFO [stdout] (default task-33) citymaster3_.ROW_ID as ROW_ID1_3_1_,
2017-03-30 18:10:27,095 INFO [stdout] (default task-33) citymaster3_.CITY_NAME as CITY_NAM2_3_1_,
2017-03-30 18:10:27,095 INFO [stdout] (default task-33) citymaster3_.state_id as state_id3_3_1_
2017-03-30 18:10:27,095 INFO [stdout] (default task-33) from
2017-03-30 18:10:27,095 INFO [stdout] (default task-33) DRIVER_MASTER this_
2017-03-30 18:10:27,095 INFO [stdout] (default task-33) left outer join
2017-03-30 18:10:27,095 INFO [stdout] (default task-33) DELIVERY_ZONES deliveryzo2_
2017-03-30 18:10:27,095 INFO [stdout] (default task-33) on this_.DELZONE_ID=deliveryzo2_.ROW_ID
2017-03-30 18:10:27,096 INFO [stdout] (default task-33) left outer join
2017-03-30 18:10:27,096 INFO [stdout] (default task-33) CITY_MASTER citymaster3_
2017-03-30 18:10:27,096 INFO [stdout] (default task-33) on deliveryzo2_.CITY_ID=citymaster3_.ROW_ID
2017-03-30 18:10:27,096 INFO [stdout] (default task-33) where
2017-03-30 18:10:27,096 INFO [stdout] (default task-33) this_.ROW_ID=?

2017-03-30 18:10:27,100 INFO [stdout] (default task-33) Hibernate:
2017-03-30 18:10:27,101 INFO [stdout] (default task-33) select
2017-03-30 18:10:27,101 INFO [stdout] (default task-33) statemaste0_.ROW_ID as ROW_ID1_17_0_,
2017-03-30 18:10:27,101 INFO [stdout] (default task-33) statemaste0_.country_id as country_3_17_0_,
2017-03-30 18:10:27,102 INFO [stdout] (default task-33) statemaste0_.STATE_NAME as STATE_NA2_17_0_,
2017-03-30 18:10:27,102 INFO [stdout] (default task-33) countrymas1_.ROW_ID as ROW_ID1_4_1_,
2017-03-30 18:10:27,102 INFO [stdout] (default task-33) countrymas1_.COUNTRY_NAME as COUNTRY_2_4_1_
2017-03-30 18:10:27,103 INFO [stdout] (default task-33) from
2017-03-30 18:10:27,103 INFO [stdout] (default task-33) STATE_MASTER statemaste0_
2017-03-30 18:10:27,103 INFO [stdout] (default task-33) left outer join
2017-03-30 18:10:27,103 INFO [stdout] (default task-33) COUNTRY_MASTER countrymas1_
2017-03-30 18:10:27,104 INFO [stdout] (default task-33) on statemaste0_.country_id=countrymas1_.ROW_ID
2017-03-30 18:10:27,104 INFO [stdout] (default task-33) where
2017-03-30 18:10:27,104 INFO [stdout] (default task-33) statemaste0_.ROW_ID=?

2017-03-30 18:10:27,154 INFO [stdout] (default task-33) Hibernate:
2017-03-30 18:10:27,154 INFO [stdout] (default task-33) select
2017-03-30 18:10:27,154 INFO [stdout] (default task-33) deliveryzo0_.ROW_ID as ROW_ID1_7_0_,
2017-03-30 18:10:27,154 INFO [stdout] (default task-33) deliveryzo0_.CITY_ID as CITY_ID3_7_0_,
2017-03-30 18:10:27,154 INFO [stdout] (default task-33) deliveryzo0_.DELZONE_NAME as DELZONE_2_7_0_,
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) citymaster1_.ROW_ID as ROW_ID1_3_1_,
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) citymaster1_.CITY_NAME as CITY_NAM2_3_1_,
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) citymaster1_.state_id as state_id3_3_1_,
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) statemaste2_.ROW_ID as ROW_ID1_17_2_,
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) statemaste2_.country_id as country_3_17_2_,
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) statemaste2_.STATE_NAME as STATE_NA2_17_2_
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) from
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) DELIVERY_ZONES deliveryzo0_
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) left outer join
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) CITY_MASTER citymaster1_
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) on deliveryzo0_.CITY_ID=citymaster1_.ROW_ID
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) left outer join
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) STATE_MASTER statemaste2_
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) on citymaster1_.state_id=statemaste2_.ROW_ID
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) where
2017-03-30 18:10:27,155 INFO [stdout] (default task-33) deliveryzo0_.ROW_ID=?

2017-03-30 18:10:27,162 INFO [com.aaratech.medtrack.converter.DeliveryZoneToDriverConverter] (default task-33) Profile : null
2017-03-30 18:10:32,655 INFO [stdout] (default task-47) Hibernate:
2017-03-30 18:10:32,656 INFO [stdout] (default task-47) select
2017-03-30 18:10:32,656 INFO [stdout] (default task-47) this_.ROW_ID as ROW_ID1_7_2_,
2017-03-30 18:10:32,656 INFO [stdout] (default task-47) this_.CITY_ID as CITY_ID3_7_2_,
2017-03-30 18:10:32,657 INFO [stdout] (default task-47) this_.DELZONE_NAME as DELZONE_2_7_2_,
2017-03-30 18:10:32,657 INFO [stdout] (default task-47) citymaster2_.ROW_ID as ROW_ID1_3_0_,
2017-03-30 18:10:32,657 INFO [stdout] (default task-47) citymaster2_.CITY_NAME as CITY_NAM2_3_0_,
2017-03-30 18:10:32,657 INFO [stdout] (default task-47) citymaster2_.state_id as state_id3_3_0_,
2017-03-30 18:10:32,657 INFO [stdout] (default task-47) statemaste3_.ROW_ID as ROW_ID1_17_1_,
2017-03-30 18:10:32,657 INFO [stdout] (default task-47) statemaste3_.country_id as country_3_17_1_,
2017-03-30 18:10:32,658 INFO [stdout] (default task-47) statemaste3_.STATE_NAME as STATE_NA2_17_1_
2017-03-30 18:10:32,658 INFO [stdout] (default task-47) from
2017-03-30 18:10:32,658 INFO [stdout] (default task-47) DELIVERY_ZONES this_
2017-03-30 18:10:32,658 INFO [stdout] (default task-47) left outer join
2017-03-30 18:10:32,658 INFO [stdout] (default task-47) CITY_MASTER citymaster2_
2017-03-30 18:10:32,658 INFO [stdout] (default task-47) on this_.CITY_ID=citymaster2_.ROW_ID
2017-03-30 18:10:32,658 INFO [stdout] (default task-47) left outer join
2017-03-30 18:10:32,658 INFO [stdout] (default task-47) STATE_MASTER statemaste3_
2017-03-30 18:10:32,658 INFO [stdout] (default task-47) on citymaster2_.state_id=statemaste3_.ROW_ID
2017-03-30 18:10:32,658 INFO [stdout] (default task-47) order by
2017-03-30 18:10:32,658 INFO [stdout] (default task-47) this_.DELZONE_NAME asc

2017-03-30 18:10:32,662 INFO [stdout] (default task-47) Hibernate:
2017-03-30 18:10:32,662 INFO [stdout] (default task-47) select
2017-03-30 18:10:32,662 INFO [stdout] (default task-47) countrymas0_.ROW_ID as ROW_ID1_4_0_,
2017-03-30 18:10:32,662 INFO [stdout] (default task-47) countrymas0_.COUNTRY_NAME as COUNTRY_2_4_0_
2017-03-30 18:10:32,662 INFO [stdout] (default task-47) from
2017-03-30 18:10:32,662 INFO [stdout] (default task-47) COUNTRY_MASTER countrymas0_
2017-03-30 18:10:32,663 INFO [stdout] (default task-47) where
2017-03-30 18:10:32,663 INFO [stdout] (default task-47) countrymas0_.ROW_ID=?

2017-03-30 18:10:32,670 WARN [org.springframework.validation.DataBinder] (default task-47) Skipping URI variable 'row_id' since the request contains a bind value with the same name.
2017-03-30 18:10:32,684 INFO [stdout] (default task-47) Hibernate:
2017-03-30 18:10:32,684 INFO [stdout] (default task-47) select
2017-03-30 18:10:32,684 INFO [stdout] (default task-47) deliveryzo0_.ROW_ID as ROW_ID1_7_0_,
2017-03-30 18:10:32,685 INFO [stdout] (default task-47) deliveryzo0_.CITY_ID as CITY_ID3_7_0_,
2017-03-30 18:10:32,685 INFO [stdout] (default task-47) deliveryzo0_.DELZONE_NAME as DELZONE_2_7_0_,
2017-03-30 18:10:32,685 INFO [stdout] (default task-47) citymaster1_.ROW_ID as ROW_ID1_3_1_,
2017-03-30 18:10:32,685 INFO [stdout] (default task-47) citymaster1_.CITY_NAME as CITY_NAM2_3_1_,
2017-03-30 18:10:32,686 INFO [stdout] (default task-47) citymaster1_.state_id as state_id3_3_1_,
2017-03-30 18:10:32,686 INFO [stdout] (default task-47) statemaste2_.ROW_ID as ROW_ID1_17_2_,
2017-03-30 18:10:32,686 INFO [stdout] (default task-47) statemaste2_.country_id as country_3_17_2_,
2017-03-30 18:10:32,686 INFO [stdout] (default task-47) statemaste2_.STATE_NAME as STATE_NA2_17_2_
2017-03-30 18:10:32,686 INFO [stdout] (default task-47) from
2017-03-30 18:10:32,686 INFO [stdout] (default task-47) DELIVERY_ZONES deliveryzo0_
2017-03-30 18:10:32,687 INFO [stdout] (default task-47) left outer join
2017-03-30 18:10:32,687 INFO [stdout] (default task-47) CITY_MASTER citymaster1_
2017-03-30 18:10:32,687 INFO [stdout] (default task-47) on deliveryzo0_.CITY_ID=citymaster1_.ROW_ID
2017-03-30 18:10:32,687 INFO [stdout] (default task-47) left outer join
2017-03-30 18:10:32,687 INFO [stdout] (default task-47) STATE_MASTER statemaste2_
2017-03-30 18:10:32,687 INFO [stdout] (default task-47) on citymaster1_.state_id=statemaste2_.ROW_ID
2017-03-30 18:10:32,687 INFO [stdout] (default task-47) where
2017-03-30 18:10:32,687 INFO [stdout] (default task-47) deliveryzo0_.ROW_ID=?

2017-03-30 18:10:32,690 INFO [stdout] (default task-47) Hibernate:
2017-03-30 18:10:32,690 INFO [stdout] (default task-47) select
2017-03-30 18:10:32,690 INFO [stdout] (default task-47) countrymas0_.ROW_ID as ROW_ID1_4_0_,
2017-03-30 18:10:32,690 INFO [stdout] (default task-47) countrymas0_.COUNTRY_NAME as COUNTRY_2_4_0_
2017-03-30 18:10:32,690 INFO [stdout] (default task-47) from
2017-03-30 18:10:32,690 INFO [stdout] (default task-47) COUNTRY_MASTER countrymas0_
2017-03-30 18:10:32,690 INFO [stdout] (default task-47) where
2017-03-30 18:10:32,691 INFO [stdout] (default task-47) countrymas0_.ROW_ID=?

2017-03-30 18:10:32,696 INFO [com.aaratech.medtrack.converter.DeliveryZoneToDriverConverter] (default task-47) Profile : DeliveryZones [id=2]
2017-03-30 18:10:32,701 WARN [org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver] (default task-47) Failed to bind request element: org.springframework.beans.TypeMismatchException: Failed to convert value of type [com.aaratech.medtrack.model.DriverMaster] to required type [com.aaratech.medtrack.model.DriverMaster]; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [com.aaratech.medtrack.model.DriverMaster] to type [@javax.validation.Valid com.aaratech.medtrack.model.DriverMaster] for value 'DriverMaster [row_id=5]'; nested exception is java.lang.ClassCastException: com.aaratech.medtrack.model.DriverMaster cannot be cast to java.lang.String

最佳答案

由于错误是

Failed to convert value of type Driver-Master to required type Driver-Master nested exception is Conversion-Failed-Exception

这里 Spring 尝试将对象 Driver-Master 转换为 String,就像这里所做的那样。

public Delivery-Zones convert(Object element) {
Integer id = Integer.parseInt((String)element);
}

请通过重写来编写您自己的转换器方法。

关于java - 如何在 spring mvc 4 上将表单值从 jsp 发布到 Controller 时解决 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43118046/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com