org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type [java.lang.String] to required type [java.lang.Integer]; nested exception is java.lang.NumberFormatException: For input string: "id"
这是一个ssm项目,通过从前台获取数据,经过layui组件将数据发送到Service层 ,报错java.lang.NumberFormatException: For input string: "id"
//多条件搜索
$("#search").click(function () {
var id=$("[name='id']").val();
var name=$("[name='name']").val();
var city=$("[name='city']").val();
var manager=$("[name='manager']").val();
var grade=$("[name='grade']").val();
table.reload('demo', {
where: { //设定异步数据接口的额外参数,任意设
id: 'id'
,name: name
,city: city
,manager: manager
,grade: grade
}
,page: {
curr: 1 //重新从第 1 页开始
}
}); //只重载数据
});
-----------------------------------------------以上是layui代码
public class ClientsController {
//注入客户的Service
@Autowired
private ClientsService clientsService;
//加载数据
@RequestMapping(value = "/clients/init")
@ResponseBody
public Map getList(Integer page,Integer limit,Integer id,String name,
String city,String manager,String grade){
System.out.println(page);
System.out.println(limit );
System.out.println("---------------------------");
System.out.println(id);
//获得数据总条数
Integer count = clientsService.getCount();
//获得每页开始下标
Integer indexPage=(page-1)*limit ;
List<Clients> list = clientsService.getList(indexPage,limit ,id,name,city,manager,grade);
System.out.println(list);
// 创建map,封装要返回的数据
Map map = new HashMap();
map.put("msg","");
map.put("code",0);
map.put("count",count);
map.put("data",list);
return map;
}
}
通过spring注入前台数据,要接收的参数为integer类型,var弱类型可以是数值,所以正常来说是没有问题的,但这里给id属性赋值时,id被加上了引号,所以传过去的数据是一个string类型,但接收的是integer类型,所以这里去掉上面的单引号就可以正确运行了:
table.reload('demo', {
where: { //设定异步数据接口的额外参数,任意设
id: 'id'
,name: name
,city: city
,manager: manager
,grade: grade
}
,page: {
curr: 1 //重新从第 1 页开始
}
}); //只重载数据