今天在公司头皮发麻了,前端post带一个参数很容易接收,但是用接收一个参数的方法去接收多个参数时就会各种报错,刚刚查了好多资料,大概问题就是前端post时携带多个参数是这样子的,我的前端是uni-app:
var data = {'a':123,'b':3.14};
uni.$http.post('url',data);
这时候java后端接收到的是一个对象,什么类型我没去研究,我的是springboot项目,直接这样搞就OK:
@PostMapping("/test")
public void test(@RequestBody HashMap<String, Object> s) {
int a = Integer.parseInt(String.valueOf(s.get("a")));
double b = Double.parseDouble(String.valueOf(s.get("b")));
System.out.printf(a + "," + b);
}
String.valueOf(s.get(“a”)就已经可以取出a的String类型的值了,只是因为我这里要String转成数字类型。
当然除了这个方法,后端想无脑接收多个参数,也可以在前端下手:
var data = new FormData();
data.append('a',123);
data.append('b',3.14);
但是这个方法只能在web使用,小程序使用会报错!