springmvc前后端传值总结
1 前端向后端传参
1.1 普通方式传参
1.1.1 页面
参数需要解析成json对象;JSON.parse(JSON.stringify(query))
|
$.getJSON("${serverUrl}/store/brand/getBrand", JSON.parse(JSON.stringify(query)), function(data){}); |
1.1.2 后端
使用普通的参数即可,不需要配置
|
@RequestMapping("/getBrand") @ResponseBody public WebResponse<Page<BrandVo>> getBrand(BrandQuery query, Pageable pageable) { WebResponse<Page<BrandVo>> response = new WebResponse<Page<BrandVo>>(); // set storeid query.setStoreid(1L); response.setData(brandService.getStoreBrandByCondition(query, pageable)); return response; } |
1.2 json对象传参
1.2.1 页面
需要定义contentType: "application/json; charset=utf-8";
参数需转换成字符串;data : JSON.stringify(brandSaveInfo)
|
$.ajax({ url : "${serverUrl}/store/brand/addBrandDetail", type : "POST", datatype:"json", contentType: "application/json; charset=utf-8", data : JSON.stringify(brandSaveInfo), success : function(data, stats) { console.log("保存成功:"+stats); }, error : function(data) { } }); |
1.2.2 后端
参数定义前需加上@RequestBody
|
@RequestMapping("/addBrandDetail") @ResponseBody public WebResponse<String> addBrandDetail(@Valid @RequestBody BrandDetailVo brandDetailVo, BindingResult bindingResult) { if (bindingResult.hasErrors()) { throw new NovaIllegalArgumentException(bindingResult); } WebResponse<String> response = new WebResponse<String>(); // 从shiro得到uid Long storeid = 1L; brandService.addBrandDetail(brandDetailVo, storeid); response.setData(NovaConstants.APPLICATION_SUCCESS); return response; } |
1.3 简单对象、复杂对象
简单对象是指基本类型、基本类型数组、自定义对象;
复杂对象是指自定义对象数组;
复杂对象只能通过json对象传参,简单对象可以使用两种方式传参;
使用普通方式传参还是json方式传参,与get/post请求方式无关,只与参数对象的复杂程度有关(是简单对象还是复杂对象)。
1.4 日期类型参数
前端参数使用字符串
在普通方式传参方式,后台需要设置DateTimeFormat
|
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date upperSaleTime;//上架时间or下架时间上限 |
在json对象传参,后台需要设置dateDeSerialize
|
@JsonDeSerialize(using=DateDeSerializer.class) private Date saleTime; // 上架或下架时间 |
2 后台返回页面数据
后台返回数据有两种方式:json数据、页面数据
2.1 json数据
使用@responsebody
2.2 页面数据
返回ModelAndView
2.3 日期类型
返回json数据时,日期类型需要设置为dateSerialize
|
@JsonSerialize(using=DateSerializer.class) private Date saleTime; // 上架或下架时间 |
springmvc前后端传值总结的更多相关文章
- springmvc前后端传值
@pathvible 后端传值(rest风格) exp: @requestMapping("/view/{userId}") public String getiew(@Parth ...
- Thymeleaf前后端传值 页面取值与js取值
参考: Thymeleaf前后端传值 页面取值与js取值 Thymeleaf 与 Javascript Thymeleaf教程 (十二) 标签内,js中使用表达式 目的: 后端通过Model传值到前端 ...
- content-type常见类型辨析(以ajax与springmvc前后端交互为例)
博客搬家: content-type常见类型辨析(以ajax与springmvc前后端交互为例) 在http报文的首部中,有一个字段Content-type,表示请求体(entity body)中的数 ...
- SpringMVC踩坑3——前后端传值问题
在前端页面点击修改,同时把需要修改的ID传到后端,后端根据ID去修改具体数据 这是前端代码 <a href="${pageContext.request.contextPath}/bo ...
- SpringMVC前后端数据交互总结
控制器 作为控制器,大体的作用是作为V端的数据接收并且交给M层去处理,然后负责管理V的跳转.SpringMVC的作用不外乎就是如此,主要分为:接收表单或者请求的值,定义过滤器,跳转页面:其实就是ser ...
- SpringMVC前后端分离交互传参详细教程
温故而知新,本文为一时兴起写出,如有错误还请指正 本文后台基于SpringBoot2.5.6编写,前端基于Vue2 + axios和微信小程序JS版分别编写进行联调测试,用于理解前后端分离式开发的交互 ...
- mui与springMVC前后端分离
这个小dome简单来说的前后端分离,通过跨域调用接口来显示数据. 前端用到mui框架,主要来显示数据. 后端用到Java的springMVC,restful服务来做增删改查管理, 这里主要实现动态显示 ...
- JQuery ajax 前后端传值介绍
https://jingyan.baidu.com/album/ca41422f0bf08e1eae99ed04.html?picindex=5 现在我们话不多说,开始仔细讲解一下我们ajax内部传递 ...
- SpringMVC前后端参数交互
Controller中使用JSON方式有多种 关键在于ajax请求是将数据以什么形式传递到后台 HTTP请求中: 如果是get请求,那么表单参数以name=value&name1=value1 ...
随机推荐
- adb pull命令复制android数据库文件.db到电脑
1.win+r cmd进入命令行 2.cd 进入[sdk]/platform-tools目录下 3.执行下面命令行,复制xxx.db到F:/dest adb pull /data/data/[pack ...
- Delphi 调用netsh命令修改IP地址
Delphi 调用netsh命令修改IP地址 先介绍一下Netsh命令的使用方法: 在这里跟大家介绍几个简单的指令 1.Show IP 1.1Cmd Mode 直接在cmd下面输入 netsh int ...
- Quartus II调用modelsim无缝仿真
本篇文章为转载,写的不错,最近在学modelsim仿真,网上的教程很乱,把自己认为不错的整理贴出来,后面有机会会写个详细点的. Quartus 中调用modelsim的流程 1. 设定仿真工具 ass ...
- iOS学习之NSBundle介绍和使用
iOS学习之NSBundle介绍和使用 http://blog.csdn.net/totogo2010/article/details/7672271 新建一个Single View Applicat ...
- C#中让窗体自动靠边隐藏
1: private void Yincangtimer_Tick(object sender, EventArgs e)//窗体隐藏事件 2: { 3: int a = Control.MouseP ...
- 【50】了解new和delete的合理替换时机
1.有时候,我们替换掉编译器提供的new或者delete.首先思考,为什么想要替换?下面是三个常见理由: a.用来检测运用上的错误,超额分配一些内存,再额外的空间放置一些内存: b.为了强化效能,编译 ...
- C++ 构造过程和析构过程
1.C++构造和析构的过程,类似于穿衣脱衣的过程.穿衣是:先穿内衣,再穿外套.脱衣是:先脱外套,再脱内衣.C++构造过程:首先调用父类构造方法,再调用子类构造方法.C++析构过程:首先调用子类析构方法 ...
- iOS开发笔记系列-基础2(类)
面向对象编程总是离不开类和对象的,Objective-C也不例外,不过Objective-C中的类还有一些自己的独特点. 类的声明和定义 在iOS开发中,类的声明与定义通常都是分开的,类得声明通常存放 ...
- .NET连接MySQL数据库的方法实现
突然对.NET连接MySQL数据库有点兴趣,于是乎网上到处找资料,学习MySQL的安装,MySQL的使用等等等等,终于搞定了! 最终效果就是显示数据库中数据表的数据: 首先,当然要有MySQL数据库啦 ...
- SqlServer按照指定顺序对字段进行排序
最近的一个项目,使用存储过程对报表进行分析,其中有一些名称需要根据指定顺序显示,而其名称对应的编号并不是按照要求的顺序排列的.通过上网查找资料,发现sql 中的charindex函数可以帮助解决这个问 ...