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前后端传值总结的更多相关文章

  1. springmvc前后端传值

    @pathvible 后端传值(rest风格) exp: @requestMapping("/view/{userId}") public String getiew(@Parth ...

  2. Thymeleaf前后端传值 页面取值与js取值

    参考: Thymeleaf前后端传值 页面取值与js取值 Thymeleaf 与 Javascript Thymeleaf教程 (十二) 标签内,js中使用表达式 目的: 后端通过Model传值到前端 ...

  3. content-type常见类型辨析(以ajax与springmvc前后端交互为例)

    博客搬家: content-type常见类型辨析(以ajax与springmvc前后端交互为例) 在http报文的首部中,有一个字段Content-type,表示请求体(entity body)中的数 ...

  4. SpringMVC踩坑3——前后端传值问题

    在前端页面点击修改,同时把需要修改的ID传到后端,后端根据ID去修改具体数据 这是前端代码 <a href="${pageContext.request.contextPath}/bo ...

  5. SpringMVC前后端数据交互总结

    控制器 作为控制器,大体的作用是作为V端的数据接收并且交给M层去处理,然后负责管理V的跳转.SpringMVC的作用不外乎就是如此,主要分为:接收表单或者请求的值,定义过滤器,跳转页面:其实就是ser ...

  6. SpringMVC前后端分离交互传参详细教程

    温故而知新,本文为一时兴起写出,如有错误还请指正 本文后台基于SpringBoot2.5.6编写,前端基于Vue2 + axios和微信小程序JS版分别编写进行联调测试,用于理解前后端分离式开发的交互 ...

  7. mui与springMVC前后端分离

    这个小dome简单来说的前后端分离,通过跨域调用接口来显示数据. 前端用到mui框架,主要来显示数据. 后端用到Java的springMVC,restful服务来做增删改查管理, 这里主要实现动态显示 ...

  8. JQuery ajax 前后端传值介绍

    https://jingyan.baidu.com/album/ca41422f0bf08e1eae99ed04.html?picindex=5 现在我们话不多说,开始仔细讲解一下我们ajax内部传递 ...

  9. SpringMVC前后端参数交互

    Controller中使用JSON方式有多种 关键在于ajax请求是将数据以什么形式传递到后台 HTTP请求中: 如果是get请求,那么表单参数以name=value&name1=value1 ...

随机推荐

  1. Java同步问题面试参考指南

    同步 在多线程程序中,同步修饰符用来控制对临界区代码的访问.其中一种方式是用synchronized关键字来保证代码的线程安全性.在Java中,synchronized修饰的代码块或方法不会被多个线程 ...

  2. 转载Jquery中的三种$()

    1.$()可以是$(expresion),即css选择器.Xpath或html元素,也就是通过上述表达式来匹配目标元素. 比如:$("a")构造的这个对象,是用CSS选择器构建了一 ...

  3. 针对 .NET 框架的安全编码指南

      此主题尚未评级 - 评价此主题 发布日期 : 10/9/2004 | 更新日期 : 10/9/2004 Microsoft Corporation 适用于: Microsoft .NET 框架 摘 ...

  4. Android studio中出现非法字符时的部分解决方法

    我将原来在Eclipse中开发的工程搬到了Android studio上来,在运行,编译程序的过程中出现了错误.提示存在非法字符. 后来发现是由于程序代码中有中文字符的出现,问题就出在对中文支持的UT ...

  5. ThinkPHP3.1快速入门(12)自动验证

    自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 验证规则 数据验证可以进行数据类型.业务规则.安全判断等方面的验证操作.数据验证有两 ...

  6. web工作方式,浏览网页,打开浏览器,输入网址按下回车键,然后会显示出内容,这个过程是怎样的呢?

    以下内容摘自<Go Web编程>,介绍的通俗易懂. 我们平时浏览网页的时候,会打开浏览器,输入网址后按下回车键,然后就会显示出你想要浏览的内容.在这个看似简单的用户行为背后,到底隐藏了些什 ...

  7. CPU相关信息

    unit untCpuInfo;interface{ 获取 CPU 制造商 }function GetCpuFactory: String;{ 获取 CPU 家族系统 }function GetCpu ...

  8. Android使用的开发MediaRecorder录制视频

    MediaRecorder除了使用录制音频.还可用于录制视频.关于MediaRecorder的具体解释大家能够參考<Android开发之MediaRecorder类具体解释>.使用Medi ...

  9. C++ typedef typename

    [cpp] view plaincopy template<typename T> class A { public: typedef T a_type; }; template<t ...

  10. [Effective C++ --008]别让异常逃离析构函数

    这章非常容易理解:因为C++并不禁止析构函数吐出异常,只是不鼓励这样做而已. 一.原因 假设我们有10个装着鸡蛋的容器,而且现在我们还想着把它在析构函数打烂. class Egg { public : ...