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方法里面和上面的参数除了首字母小写外,其他一致,否则传值失败。