1. vue 发送ajax请求传递对象:
<script>
import {
addUser,
updateUser,
delUser
} from "@/api/table.js"
export default {
data() {
return {
dialog: false,
form: {
id: '',
name: '',
sex: '',
age: '',
phone: '',
adress: '',
},
logo: "",
formDisabled: false,
}
},
methods: {
save(form) {
if (this.logo == "add") {
this.$refs[form].validate((valid) => {
if (valid) {
addUser(this.form).then(response => {
this.dialog = false;
this.$emit("getAllUsers");
})
} else {
this.$message({
type: 'error',
message: '校验失败',
});
}
});
} else if (this.logo == "update") {
this.$confirm('您确定要修改此条数据 ?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$refs[form].validate((valid) => {
if (valid) {
updateUser(this.form).then(response => {
this.dialog = false;
this.$emit("getAllUsers");
})
} else {
this.$message({
type: 'error',
message: '校验失败',
});
}
});
}).catch(() => {
this.$message({
type: 'info',
message: '已取消修改'
});
});
}
},
},
}
</script>
2. table.js 请求后端地址
import request from '@/utils/request'
import qs from 'qs'
export function updateUser(params){
return request({
url: '/user/updateUser',
method: 'post',
data: qs.stringify({
bean: JSON.stringify(params)
})
})
}
3. 后端Controller层接收对象的两种方式
1. 第一种方式
@RequestMapping(value = "/updateUser",method = RequestMethod.POST)
public Map<String,Object> updateUser(HttpServletRequest request){
Map<String,Object> resultMap = new HashMap<>();
try {
String bean = request.getParameter("bean");
User user = null;
if(null != bean && !"".equals(bean)){
JSONObject JsonObjectBean = JSONObject.fromObject(bean);
user = (User)JSONObject.toBean(JsonObjectBean,User.class);
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setRootClass(User.class);
user = (User) JSONSerializer.toJava(JsonObjectBean,jsonConfig);
}
int resultData = userService.updateUser(user);
ReturnUtil.createSuccess(resultMap,resultData, CommonRest.UPDATE_SUCCESS);
} catch (Exception e) {
log.error(e.getMessage(),e);
ReturnUtil.createError(resultMap,CommonRest.UPDATE_FAILD);
}
return resultMap ;
}
2. 第二种方式
@RequestMapping(value = "/updateUser",method = RequestMethod.POST)
public Map<String,Object> updateUser(@RequestBody User user){
}
4. 遍历参数时会报错: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to
Object object = expressList.get("exList");
JSONArray jsonObject = JSONArray.fromObject(object);
List<ExpressEmployeeInfoExt2> list2 = (List<ExpressEmployeeInfoExt2>) JSONArray.toCollection(jsonObject, ExpressEmployeeInfoExt2.class);