springboot之json传参(后台控制层如何接收和解析参数)
一般web端都是用form标签的形式进行表单提交到后台,后台控制层再用相应的实体对象去接收前端传来的json参数。
但是有时候前端界面很复杂,要传入后端的参数是各种标签里面的value值,这些值又是来自不同实体对象,所以后台接收参数就会变成一个麻烦事。
我现在采取的措施是,后端控制层用一个map参数接分别来自三个不同对象的属性。不过要事先在前端封装好json对象。
(实际场景是微信公账号)
1.前端代码
submitSave:function (){
var data = {
"visitorInfo":{},//预约信息
"license":{},//车辆信息
"user":{}//当前登录用户信息
};
data.license.carNo = vm.carNo;
data.visitorInfo.originatorType = vm.userType;
data.visitorInfo.createId = vm.createId;
data.visitorInfo.userId = vm.userId;
data.visitorInfo.receiverId = vm.receiverId;
data.visitorInfo.invitationReason = vm.invitationReason;
data.visitorInfo.ddr = vm.ddr;
data.visitorInfo.invitationTime = vm.invitationTime;
data.visitorInfo.endTime = vm.endTime;
data.user.id = vm.dengluId;
// console.log(JSON.stringify(data))
$.ajax({
url: '${ctx}/mobile/submit',
dataType: 'json',
contentType : 'application/json;charset=utf-8',//缺少这个
type: 'post',
data: JSON.stringify(data),//缺少这个
success: function (data) {
console.log(data);
if (data.status == 1) {
setTimeout(function () {
// mui.back();
//跳到首页
window.location.href = '${ctx}/mobile/toIndex';
}, 1000)
}
if(data.status == 0){
}
if(data.msg != ''){
mui.toast(data.msg);
}
}
});
},
2.后台代码(中间map用阿里的fastjson解析)
/**
* 提交和修改按钮接口
*/
@ResponseBody
@PostMapping("/submit")public ResponseEntity<Response> submit(@RequestBody Map<String,Object> map,HttpServletRequest request) { Map<String,String> map1 = (Map) map.get("visitorInfo");
Map<String,String> map2 = (Map) map.get("license");
Map<String,String> map3 = (Map) map.get("user"); VisitorInfo visitorInfo = JSON.parseObject(JSON.toJSONString(map1), VisitorInfo.class);
License license = JSON.parseObject(JSON.toJSONString(map2), License.class);
UserInfo user = JSON.parseObject(JSON.toJSONString(map3), UserInfo.class);
}
springboot之json传参(后台控制层如何接收和解析参数)的更多相关文章
- SpringBoot 处理 POST Json 传参枚举
在 Spring 框架中对枚举类型的序列化/反序列化是有限制的. 假设如下面这样在某些情况下就不能正常工作: 123456789 public enum PayChannelEnum implemen ...
- json传参应用
json传参应用 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅 ...
- axios post传参后台无法接收问题
起因是在angular项目中使用axios发送post请求,向后台传参后台一直无法接收,网上查了有说是请求头设置不对,需要把Content-Type:application/x-www-form-ur ...
- ASP.NET WebAPI RC 竟然不支持最常用的json传参
壮士断腕(WCF Web API),为的是 ASP.NET Web API 的横空出世,再加上它的开放(开源),于是对之产生了一点点痴情,并写下了HttpClient + ASP.NET Web AP ...
- Jeecms6中后台控制层Action如何将值传入前台视图层模板中的?
转载:https://blog.csdn.net/wsm201005030226/article/details/44343069 Jeecms后台控制层如何传值到前台freemarker的? ...
- HttpClient调用doGet、doPost、JSON传参及获得返回值
调用 doPost:map传参 Map<String,Object> map = new HashMap<>(); map.put("test"," ...
- 页面ajax请求传参及java后端数据接收
js ajax请求传参及java后端数据接收 Controller: package com.ysl.PassingParameters.controller; import java.util.Li ...
- 实现TCP断点上传,后台C#服务实现接收
实现TCP断点上传,后台C#服务实现接收 终端实现大文件上传一直都是比较难的技术,其中涉及到后端与前端的交互,稳定性和流量大小,而且实现原理每个人都有自己的想法,后端主流用的比较多的是Http来实现, ...
- json传参 js前端和java后端 的简单例子
下面讲解了从前端js对象-->json字符串-->java字符串---->java map的过程 1,初始化js对象 var param = {}; param.krel = kre ...
随机推荐
- Eclipse中Git图标表示内容
Eclipse中->属性->Team->Git->Label Decorations
- mysql查询时不区分大小写
一次偶然的机会,发现在登陆验证时,改变用户名的大小写,同样可以登录成功,这是由于,当时使用的mysql数据库对大小写不敏感,查询时总是能查询到数据.一番查找资料,给出的原因是:在创建数据库的时候,选择 ...
- Spring Boot源码(五):BeanFactoryPostProcessor和BeanPostProcessor
BeanFactoryPostProcessor是spring BeanFactory加载Bean后调用, BeanPostProcessor是Bean初始化前后调用. BeanFactoryPost ...
- 剑指offer-面试题5-替换空格-字符串
/* 题目: 请实现一个函数,把字符串中的每个空格替换成'%20'. 例如输入“We are happy",则输出 ”We%20are%happy". */ /* 结题思路: 考虑 ...
- 开发分支管理模型之阿里AoneFlow
说到分支管理模型,令人最为熟悉的莫过于TrunkBased 和 GitFlow. TrunkBased 模型是持续集成思想所崇尚的工作方式,它由单个master分支和许多release分支组成,每个r ...
- 纪中5日T3 1566. 幸运锁(lucky.pas/c/cpp)
1566. 幸运锁(lucky.pas/c/cpp) 题目描述 有一把幸运锁,打开它将会给你带来好运,但开锁时需要输入一个正整数(没有前导0).幸运锁有一种运算,对于一个正整数,返回他的相邻两位数字间 ...
- vitualbox安装centos7卡死
在用vitualbox安装centos7的时候,每次到配置页面,都会莫名卡死,试了几遍才发现不是卡死,而是弹窗用鼠标点击是没用的,需要用tab键和回车来选中执行.
- Cobalt Strike配置及简单使用
前言 CS分为客户端与服务端,服务端是一个,客户端可以有多个,非常适合团队协同作战,多个攻击者可以同时连接到一个团队服务器上,共享攻击资源与目标信息和sessions,可模拟APT做模拟对抗,进行内网 ...
- PHPMailer发送邮件遇坑小记
一:phpmailer发送邮件成功了 数据库发送状态也更改 但是用户就是没收到邮件. 出现原因:发送邮件太多 导致邮箱服务器被腾讯封了 发送的邮件统统进入了邮件服务器的草稿箱里. 解决方案: 重新修改 ...
- FLUSH+RELOAD技术
FLUSH+RELOAD技术是PRIME+PROBE技术的变体,攻击间谍进程和目标进程的共享页.在共享页中,间谍进程可以确保一个特定的内存的映射从整个cache的层级中剔除.间谍进程就是使用这一点去监 ...