【发布时间】:2015-04-11 18:10:25
【问题描述】:
我的 jsp 表单中有一些数字字段(但不是强制性的) 例如。 kkqty、sogoqty 和 sesaqty。 因此,当用户未在这些字段中提供任何输入时,我会在控制器端接收 Null,因此在保存这些表单数据时会出现 null 属性异常
我的 POJO (OutletInfo.java)
private Double kkqty;
private Double sogoqty;
private Double sesaqty;
//getter & setters
@Column(name = "KKqty", nullable = false, precision = 10)
public Double getKkqty() {
return this.kkqty;
}
public void setKkqty(Double kkqty) {
this.kkqty = kkqty;
}
@Column(name = "sogoqty", nullable = false, precision = 10)
public Double getSogoqty() {
return this.sogoqty;
}
public void setSogoqty(Double sogoqty) {
this.sogoqty = sogoqty;
}
@Column(name = "sesaqty", nullable = false, precision = 10)
public Double getSesaqty() {
return this.sesaqty;
}
我的控制器
@RequestMapping(value = "saveOutletInfo", method = RequestMethod.POST)
public @ResponseBody String saveOutletInfo(OutletInfo outletInfo,HttpServletRequest request){
System.out.print("KKQTY:"+outletInfo.getKkqty());
return this.getMasterService().saveOutletInfo(outletInfo);
}
在控制器中,当我尝试打印所有数字字段时,我在这里收到 null,因此无法保存。
我需要将而不是 null 转换为默认值 0.0 我知道我需要检查所有字段是否为 null 然后将其设置为 0.0 的一种方法,但这几乎是硬编码的,所以我希望在这种情况下自动转换。
我浏览了一些帖子并遇到了@InitBinder,但在这种情况下我无法使用它。
有点像
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Double.class, new CustomNumberEditor(Double.class, true));
}
任何人都可以建议我如何在我的所有数字字段为空时自动将其转换为 0.0。
【问题讨论】:
标签: java spring jsp spring-mvc model-view-controller