spring mvc InitBinder 遇到的坑接收不了参数

1、前端代码如下:

$("#paraListTable").datagrid("reload", {
"sysParaVO.para_code" : paraCode,
"sysParaVO.sys_name" : sysName,
"sysParaVO.para_state" : null,
"sysParaVO.para_name" : paraName
});

2、后端代码:



@Autowired
private ISysParaSv sysParaSv;


@RequestMapping("/SysParaManageView")
public String SysParaManageView() {
return "admin/admin/sys_para_manager_view";
}


@InitBinder("sysParaVO")
public void InitBinderSysParaVo(WebDataBinder binder) {
binder.setFieldDefaultPrefix("sysParaVO.");
binder.registerCustomEditor(Integer.class, "para_state", new PropertyEditorSupport() {
@Override
public void setAsText(String text) {
if (StringUtils.isNotBlank(text)) {
setValue(Integer.parseInt(text));
} else {
setValue(0);
}
}
});

}


@RequestMapping("/SysParaSelectByPage")
@ResponseBody
public ReturnPage SysParaSelectByPage(int page, int rows, SysParaVO sysParaVO) {


try {
return sysParaSv.SysParaSelectByPage(page, rows, OrderByEnum.ASC, "id", sysParaVO);
} catch (Exception e) {
// TODO Auto-generated catch block
return new ReturnPage(0, 0, 0, null);
}


}


在没有加入上面红色代码前,controller层一直接受不到参数,是因为在解析参数时报错,特记;


后续发现一个问题,在pojo对象SysParaVO,需要与InitBinderSysParaVO方法里面和上面的参数除了首字母小写外,其他一致,否则传值失败。


版权声明:本文为qioutiandeyun原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。