在改造代码的时候遇到的问题,关键还搞了很久。前端传输两个参数(分页的页码和大小),开始是使用拼接的形式直接调用后台接口。在使用axios进行二次封装后、不想使用拼接的形式,想直接传递参数给后端,后端使用Map进行接收,然后使用key-value的形式获取传来的数据。结果后端获取后的转化出了问题。。。
特此记录
1、问题说明
字符串不能转换为 java.lang.Integer。这个转换和Map有关联
2、错误原因
map里存放的是key-value的键值对。如果你放入(put)的时候是Integer、直接强制类型转换没问题(Integer)XXX
。如果你放入的时候是字符串,内容是数字,强转就会报错。Integer.parseInt(maps.get("page"));
或者Integer.valueOf(maps.get("page"));
同样会报错。【这个就和我当前的状况一样、前端使用params传递参数、后端使用map接收。】
为了成功转换、可以使用:
Integer currentPage = Integer.parseInt(maps.get("page").toString());
前端调用后端接口、传递参数
后端接口设计、获得参数
3、解决方法
看2解析
Integer currentPage = Integer.parseInt(maps.get("page").toString());