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. C变量和常量

    变量定义 变量定义就是告诉编译器如何创建变量的储存,以及在何处创建变量的储存,变量定义指定了一个数据类型,并包含一个或者多个变量的列表: type variable_list //如: int i; ...

  2. 替换 Docker 或 Laradock 中 Debian 系统镜像源解决软件安装问题

    Docker Debian 镜像源替换 因多数默认的 Docker 镜像为国外的,而采用的镜像源也是国外的,故访问很慢,所以我们需要替换为国内的(比如阿里云或163等). 163 - Debian A ...

  3. 多版本切换python

    Python 安装包去官网自行下载: https://www.python.org/downloads/mac-osx/ Mac os 自带python, 但我记得是python2.7版本 在选择安装 ...

  4. pycharm 使用Git提交代码到Github

    pycharm 使用Git提交代码到Github pytharm 创建django项目,提交到github总是失败,在github创建项目拉下来后项目层级会多一层,为此查了一些资料,亲测如下方式可行. ...

  5. 获取mac地址和扫描端口

    获取IP mac地址 arp -a 10.0.0.34 扫描指定IP 1到30000端口 nmap -p1-30000 10.0.0.36

  6. CnetOS6.7编译安装MariaDB

    --安装所需软件包 [root@localhost mariadb-10.1.14]# yum install bison bison-devel ncurses libxml2 libxml2-de ...

  7. 机器学习(4)——PCA与梯度上升法

    主成分分析(Principal Component Analysis) 一个非监督的机器学习算法 主要用于数据的降维 通过降维,可以发现更便于人类理解的特征 其他应用:可视化.去噪 通过映射,我们可以 ...

  8. MLflow安装配置初入门

    学习这个时,要和Kubeflow作比较, 看看它们俩在解决和规范机器学习流程方面的思路异同. mlflow三大内涵: Tracking, Projects, Models. 一,基础镜像 harbor ...

  9. os模块补充以及序列化模块

    os模块补充以及序列化模块   一.os模块的补充 1.os.path.abspath 能把存在的相对路径的绝对路径显示出来 path = os.path.abspath("连达day19. ...

  10. [网络] 在浏览器输入URL回车之后发生了什么

    目录 一  前言 二  URL解析 三  DNS域名解析 1  IP 地址 2  什么是域名解析 3  浏览器如何通过域名去查询 URL 对应的 IP 呢 4  小结 四  建立连接 1  TCP三次 ...