SpringMVC参数传递方案

登录

@PostMapping("/login")
@ResponseBody
public Map login(String username, String password) {
Map<String, Object> map = new HashMap<>();
map.put("username", username);
map.put("password", password);
return map;
}
function login() {
let param = {
"username": "admin",
"password": "123456"
};
$.ajax({
url: "/login2",
data: param,
type: "post",
dataType: "json",
success: function(data) {
$("#username").val(data.username);
$("#password").val(data.password);
}
});
}

登录

@PostMapping("/login2")
@ResponseBody
public Map<String, Object> login2(@RequestParam(value = "username", required = false) String username,
@RequestParam(value = "password", required = false) String password) {
Map<String, Object> map = new HashMap<>();
map.put("username", username);
map.put("password", password);
return map;
}
function login() {
let param = {
"username": "admin",
"password": "123456"
};
$.ajax({
url: "/login2",
data: param,
type: "post",
dataType: "json",
success: function(data) {
$("#username").val(data.username);
$("#password").val(data.password);
}
});
}

注册

@PostMapping("/register")
@ResponseBody
public User register(User user) {
return user;
}
function register() {
let param = {
"userName": $("#username").val(),
"password": $("#password").val()
};
$.ajax({
url: "/register",
data: param,
type: "post",
dataType: "json",
success: function(data) {
console.log(data);
}
});
}

多参数无实体类参数为json字符串

@PostMapping("/multiParameter")
@ResponseBody
public Map<String, Object> multiParameter(@RequestBody Map<String, Object> map) {
return map;
}
function multiParameter() {
let param = {
"title": "爪哇笔记",
"content": "一个有趣的公众号",
"author": "小柒2012"
};
param = JSON.stringify(param);
$.ajax({
url: "/multiParameter",
data: param,
type: "post",
contentType: "application/json",
dataType: "json",
success: function(data) {
console.log(data);
}
});
}

多参数无实体类参数为json对象

@PostMapping("/multiParameter2")
@ResponseBody
public Map<String, Object> multiParameter2(@RequestParam Map<String, Object> map) {
return map;
}
function multiParameter2() {
let param = {
"title": "爪哇笔记",
"content": "一个有趣的公众号",
"author": "小柒2012"
};
$.ajax({
url: prefix + "/multiParameter2",
data: param,
type: "post",
dataType: "json",
success: function(data) {
console.log(data);
}
});
}

传递数组

@PostMapping("/array")
@ResponseBody
public Map<String, Object> array(@RequestParam(value = "ids[]") Integer[] ids) {
Map<String, Object> map = new HashMap<>();
map.put("ids", ids);
return map;
}
function array() {
let param = {
"ids": [1, 2, 3]
};
$.ajax({
url: prefix + "/array",
data: param,
type: "post",
dataType: "json",
success: function(data) {
console.log(data);
}
});
}

传递数组

@PostMapping("list")
@ResponseBody
public Map<String, Object> list(@RequestParam(value = "ids[]") List<Integer> ids) {
Map<String, Object> map = new HashMap<>();
map.put("ids",ids);
return map;
}
function array() {
let param = {
"ids": [1, 2, 3]
};
$.ajax({
url: prefix + "/array",
data: param,
type: "post",
dataType: "json",
success: function(data) {
console.log(data);
}
});
}

传递集合实体对象

@PostMapping("listObject")
@ResponseBody
public List<User> listUser(@RequestBody List<User> list) {
list.forEach(user->{
System.out.println(user.getUserName());
});
return list;
}
function listObject() {
let list = [];
list.push({
"userName": "小柒2012",
"phonenumber": "17762288888"
});
list.push({
"userName": "小柒2013",
"phonenumber": "17762289999"
});
$.ajax({
url: prefix + "/listObject",
data: JSON.stringify(list),
type: "post",
contentType: "application/json",
dataType: "json",
success: function(data) {
console.log(data);
}
});
}

传递集合实体对象一对多

@PostMapping("listUserRole")
@ResponseBody
public List<User> listUserRole(@RequestBody List<User> list) {
list.forEach(user->{
List<Role> roleList = user.getRoles();
roleList.forEach(role->{
System.out.println(role.getRoleName());
});
});
return list;
}
function listUserRole() {
let roleList = [];
roleList.push({
"roleId": "10000",
"roleName": "管理员"
});
roleList.push({
"roleId": "10001",
"roleName": "普通用户"
});
let list = [];
let user = {
"userId": 1001,
"loginName": "admin",
"userName": "小柒2012",
"phonenumber": "17762288888"
};
user.roleList = roleList;
list.push(user);
$.ajax({
url: prefix + "/listUserRole",
data: JSON.stringify(list),
type: "post",
contentType: "application/json",
dataType: "json",
success: function(data) {
console.log(data);
}
});
}

restful风格

@GetMapping("article/{id}")
@ResponseBody
public Map<String,Object> article(@PathVariable("id") String id) {
System.out.println(id);
Map<String,Object> map = new HashMap<>();
map.put("id",id);
return map;
}
function Restful(id) {
$.ajax({
url: prefix + "/article/"+id,
type: "get",
dataType: "json",
success: function(data) {
console.log(data);
}
});
}

注意事项:

  • @RequestBody 注解,必须与 contentType 类型 application/json 配合使用。

  • @RequestParam 注解,必须与 contentType 类型 application/x-www-form-urlencoded 配合使用,其为默认类型。

  • JSON.stringify() 把对象类型转换为字符串类型,一般配合@RequestBody 注解和 contentType 类型 application/json 使用。

contentType: 设置你发送给服务器的格式,有以下三种常见情况。

  • application/x-www-form-urlencoded: 默认值:提交的数据会按照 key1=val1&key2=val2 这种格式进行转换。

  • multipart/form-data: 这也是一个常见的 post 数据提交的方式。我们使用表单上传文件时,就要让 form 的 enctype 等于这个值。

  • application/json: 服务端消息主体是序列化后的 json 字符串。

dataType: 告诉服务器,我要想什么类型的数据,如果没有指定,那么会自动推断是返回xml,json,jsonp,text,script,string,html。

SpringMVC参数传递方案的更多相关文章

  1. 使用SpringMVC参数传递时,解决get请求时中文乱码的问题

    问题描述: 使用SpringMVC参数传递时, 遇到get请求中文信息时,页面应答会显示中文乱码. 解决办法: 一,  我们需要把request.getParameter(“参数名”)获取到的字符串先 ...

  2. SpringMVC参数传递 HttpServletRequest,HttpServletResponse和HttpSession

    SpringMVC参数传递 HttpServletRequest,HttpServletResponse和HttpSession 2017-11-27 16:44:51 douunderstand 阅 ...

  3. 8.SpringMVC参数传递

    页面参数传递到controller, 可被同名(与页面标签上的name名对应)的参数接收,用request设值,页面再取出来. 注意乱码解决办法: ①如果是get提交,则在tomcat的server. ...

  4. SpringMvc参数传递中乱码问题

    问题描述: 当传递中文参数到controller类时,无乱是get方式还是post方式都出现乱码 解决: 1.保证所有的页面编码都是utf-8,包括jsp页面,浏览器编码设置和eclipse的编码设置 ...

  5. springMVC参数传递

    web.xml文件    <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi=& ...

  6. Quartz集成springMVC 的方案二(持久化任务、集群和分布式)

    Quartz是一个开放源码项目,专注于任务调度器,提供了极为广泛的特性如持久化任务,集群和分布式任务等. Quartz核心是调度器,还采用多线程管理. 1.持久化任务:当应用程序停止运行时,所有调度信 ...

  7. Quartz集成springMVC 的方案一

    Quartz是一个开放源码项目,专注于任务调度器. springMVC 具体的搭建框架就不具体说明,接下来直接描述把Quartz集成到springMVC 框架中. 步骤: 1.引入所需要的jar包 2 ...

  8. springMvc参数传递的方法

    package cn.edu.hj.controller; import java.util.Map; import javax.servlet.http.HttpServletRequest; im ...

  9. SpringMVC——参数传递

    一.接收零散参数 1.装配原则为传递参数名和方法接收参数名一致 2.手动装配@RequestParam  name代表页面发送的参数名字  required代表参数是否必须传递  false代表可以不 ...

随机推荐

  1. U盘安装CentOS 7提示 “Warning: /dev/root does not exist, could not boot” 解决办法

    1.把U盘的Lable(即标签)修改成centos 2.在安装界面上按TAB键,修改启动路径,把”CENTOS\x207\x20x86_64″改成 “centos”

  2. Python基础22

    数据类型可变不可变,说的是“指向”. 深浅拷贝.

  3. vue笔记(一)

    Vue的开发 一丶下载 # 中文下载地址: https://cn.vuejs.org/ # 使用方式: # 1. 单独使用 vue.min.js.文件 # 2. 结合node.js使用集成工具 二丶v ...

  4. python 树与二叉树的实现

    1.树的基本概念 1.树的定义 树的定义是递归的,树是一种递归的数据结构. 1)树的根结点没有前驱结点,除根结点之外所有结点有且只有一个前驱结点 2)树中所有结点可以有零个或多个后继结点 2.树的术语 ...

  5. Android Studio Gradle被墙bug总结

    1 Unknown host 'd29vzk4ow07wi7.cloudfront.net'. You may need to adjust the proxy settings in Gradle ...

  6. 1-22Python练习题1-1

      Python¶   (一)四个数字:1.2.3.4,组成多少个互不相同且无重复数字的三位数?各是多少? In [1]: b=[] for i in range(1,5): for j in ran ...

  7. 001-k8s集群的安装

    k8s集群的安装 1.实验描述 通过搭建 K8S 的集群,来学习对容器的编排 2.实验环境 [你可能需要][CentOS 7 搭建模板机]点我快速打开文章 [你可能需要][VMware 从模板机快速克 ...

  8. traceroute在linux中的使用方法

    traceroute在linux中的使用方法 一.traceroute的实现原理 二.traceroute命令使用方法 1.命令格式 2.常用命令参数 3.使用实例 一.traceroute的实现原理 ...

  9. FFMPEG+SDL实现视频播放器

    一. 前言 基于学习ffmpeg和sdl,写一个视频播放器是个不错的练手项目. 视频播放器的原理很多人的博客都有讲过,这里出于自己总结的目的,还是会做一些概况. 二. 视频播放器基本原理 2.1 解封 ...

  10. 201871010117-石欣钰《面向对象程序设计(java)》第十三周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...