+ -
当前位置:首页 → 问答吧 → spring mvc,checkbox的值如何对应到model里面的int属性?

spring mvc,checkbox的值如何对应到model里面的int属性?

时间:2011-11-30

来源:互联网

表单:
<tr><td colspan="2">to_user:<form:checkbox path="flowDefines[${cur.index}].toUser" value="1" />
to_ip:<form:checkbox path="flowDefines[${cur.index}].toIp" value="1" />
  </td>
</tr>

提交以后,对应的model是:
private int toUser;
private int toIp;

现在的问题是:如果checkbox不选中,自动转化就会出错:null 无法转化为 int。

然后,在controller里面写一个:
@InitBinder
  public void initDataBinder(WebDataBinder binder) {
  PropertyEditorSupport propEditor = new PropertyEditorSupport(){
  @Override
  public void setAsText(String text) {
  if (text == null || text.trim().equals("") || text.trim().equals("null")) {
  setValue(0);
  }else {
  String value = text.trim();
  setValue(Integer.valueOf(value));
  }
  }
  };
  binder.registerCustomEditor(int.class, propEditor);
 }
还是报同样的错误,null 无法转化为 int。

我知道,用Integer可以转化不出错,但是,不想用Integer,int有默认值0,Integer的默认是null。

作者: goldenfish1919   发布时间: 2011-11-30

你可以用Integer set方法改造下 如果NULL SET进去的时候赋值0不就OK 了

作者: nizhicheng   发布时间: 2011-11-30