一般是表单接收的数据类型与实体类中定义类型不匹配所导致,如:实体类中定义int age,而form中,age所接收的是一个string类型,post提交时,spring就会验证不通过,而当成get提交,又返回原页了,日期类型转换需要重写initBinder方法
@Override
protected void initBinder(HttpServletRequest request,
ServletRequestDataBinder binder) throws Exception {
// TODO Auto-generated method stub
binder.registerCustomEditor(Date.class, new CustomDateEditor(
new SimpleDateFormat("yyyy-MM-dd"), true));
}
extends AbstractCommandController
在前台form表单中输入String类型(后台实体类实际是int类型)时,自动转换int类型,结果为0
extends SimpleFormController
在前台form表单中输入String类型(后台实体类实际是int类型)时,spring内部验证不通过,不调用onSubmit(),而是当作get请求