Controller使用@ResquestParam注解,形参并不直接写pojo对象,而是Map< String,Object>对象,然后使用其get(“key”)方法得到前端作为url参数传递过来的json格式的object对象,使用toString转化为字符串后,利用第三方架包fastjson的JSON.ParseObject()将字符串转成后端直接使用的pojo对象
我用的时fastjson来实现转换格式的,获取json数据,再将json转为pojo
前端
发送请求
JSON.stringify(this.form)为将对象转换为json对象
const _this= this; console.log('submit!'); console.log(_this.form); this.$axios({ method: 'post', url: 'http://localhost:8090/addDepartmente', data: qs.stringify({ // 1 form: JSON.stringify(this.form) }) })
后端
导入依赖
<!-- fastjson--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>2.0.1</version> </dependency>
controller
@RequestMapping(value = "/addDepartmente", method = RequestMethod.POST) public void addDepartmente(@RequestParam Map<String, Object> param) { // 2 // get("key")方法得到前端作为url参数传递过来的json格式的object对象 Object o = param.get("form"); // toString转成字符串 String DepartmentStr = o.toString(); System.err.println(DepartmentStr); // 三方架包fastjson转pojo对象 department department = JSON.parseObject(DepartmentStr, department.class); // 对象使用 System.err.println(department); departmentService.addDepartment(department); }
当然还有其他方法可以实现,转换格式
(5条消息) Axios使用Post向Spring传递POJO对象的三种方法(@RequestBody与@RequestParam注解)_莉妮可丝的猫的博客-CSDN博客_axios post传对象
标签:fastjson,Axios,form,对象,pojo,json,department From: https://www.cnblogs.com/flsh/p/16749663.html