当用到了java.sql.Date时间等非内置对象时,如果对象为null则会出现此异常。最简单的方法就是保证非内置对象不为null。
在项目业务中随着需求的变化而变化,并不能保证内置对象都不为null,因此有必要对此异常进行解决,以达到通用的效果,以下为此异常的解决办法
/** 上市时间 */
private java.sql.Date timeToMarket;
// 当属性timeToMarket为null时会抛出org.apache.commons.beanutils.ConversionException: No value specified异常
// public Date getTimeToMarket() {
// return timeToMarket;
// }
//
// public void setTimeToMarket(Date timeToMarket) {
// this.timeToMarket = timeToMarket;
// }
//解决办法
public String getTimeToMarket() {
if (timeToMarket == null) return null;
DateFormat dateFormat = DateFormat.getDateInstance();
return dateFormat.format(this.timeToMarket);
}
public void setTimeToMarket(String timeToMarket) {
if (timeToMarket == null || "".equals(timeToMarket.trim())) {
this.timeToMarket = null;
} else {
try {
DateFormat dateFormat = DateFormat.getDateInstance();
this.timeToMarket = new java.sql.Date(dateFormat.parse(
timeToMarket).getTime());
} catch (ParseException e) {
e.printStackTrace();
}
}
}