一般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传参(后台控制层如何接收和解析参数)的更多相关文章

  1. SpringBoot 处理 POST Json 传参枚举

    在 Spring 框架中对枚举类型的序列化/反序列化是有限制的. 假设如下面这样在某些情况下就不能正常工作: 123456789 public enum PayChannelEnum implemen ...

  2. json传参应用

    json传参应用 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于人阅 ...

  3. axios post传参后台无法接收问题

    起因是在angular项目中使用axios发送post请求,向后台传参后台一直无法接收,网上查了有说是请求头设置不对,需要把Content-Type:application/x-www-form-ur ...

  4. ASP.NET WebAPI RC 竟然不支持最常用的json传参

    壮士断腕(WCF Web API),为的是 ASP.NET Web API 的横空出世,再加上它的开放(开源),于是对之产生了一点点痴情,并写下了HttpClient + ASP.NET Web AP ...

  5. Jeecms6中后台控制层Action如何将值传入前台视图层模板中的?

    转载:https://blog.csdn.net/wsm201005030226/article/details/44343069     Jeecms后台控制层如何传值到前台freemarker的? ...

  6. HttpClient调用doGet、doPost、JSON传参及获得返回值

    调用 doPost:map传参 Map<String,Object> map = new HashMap<>(); map.put("test"," ...

  7. 页面ajax请求传参及java后端数据接收

    js ajax请求传参及java后端数据接收 Controller: package com.ysl.PassingParameters.controller; import java.util.Li ...

  8. 实现TCP断点上传,后台C#服务实现接收

    实现TCP断点上传,后台C#服务实现接收 终端实现大文件上传一直都是比较难的技术,其中涉及到后端与前端的交互,稳定性和流量大小,而且实现原理每个人都有自己的想法,后端主流用的比较多的是Http来实现, ...

  9. json传参 js前端和java后端 的简单例子

    下面讲解了从前端js对象-->json字符串-->java字符串---->java map的过程 1,初始化js对象 var param = {}; param.krel = kre ...

随机推荐

  1. 处理方法返回ModelAndView类型

    1.请求 <a href="test">测试</a> 2.处理方法 @RequestMapping("/test") public Mo ...

  2. 解决jmeter5.1高版本linux CPU,IO,Memory监控性能测试 java.lang.NoSuchMethodError: org.apache.jmeter.samplers.SampleSaveConfiguration.setFormatter(Ljava/t

    jmeter中也可以监控服务器的CPU和内存使用情况,但是需要安装一些插件还需要在被监测服务器上开启服务. 安装性能监控插件(jmeter-plugins)后报如下错误,是由于jmeter版本过高jm ...

  3. PHP0013:PHP操作文件案例 遍历phpdamin目录

  4. QD程序设计比赛游记

    -------------------------- 2019/5/31 纪念Wa声一片 ------------------------ 今天确实很神奇的,早晨就去了机房,我们敬爱的syzx总教练( ...

  5. Qt读写文件

    1.头文件 #include<QFile> #include<QFileDialog> #include<QDataStream> 2.写代码前工作 在ui界面拖入 ...

  6. Pikachu-XSS(跨站脚本)

    XSS(跨站脚本)概述 Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS.一般XSS可以分为如下几种常见类型:  ...

  7. ClosedXML、DocumentFormat.OpenXml导出DataTable到Excel

    在很多系统中都用到导出,使用过多种导出方式,觉得ClosedXML插件的导出简单又方便. 并且ClosedXML.DocumentFormat.OpenXml都是MIT开源. 首先通过 Nuget 安 ...

  8. Visual Studio 2017中使用gulp编译sass/scss

    在Visual Studio 2017中使用gulp编译sass/scss文件 需要的环境:Visual Studio 2017.Node.js.npm 在vs2017中 [视图]-[其他窗口]-[任 ...

  9. springboot web - 建立路由

    一. 测试代码 @RestController @RequestMapping("/book") public class BookController { @PostMappin ...

  10. C++->输入输出文件流的相关函数

    标准输入输出流与文件输入输出流的关系图: 文件输出流头文件“ofstream/fstream”,文件输入流头文件“ifstream/fstream” 1.1.打开文件方式:流类 对象名(文件名,方式) ...