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. 一款对Postman支持较好的接口文档生成工具

    最近要编写接口文档给测试和前端看,通过网上查阅资料,也认识了很多款接口文档生成工具,比如易文档.ApiPost.ShowDoc.YApi.EoLinker.DOClever.apizza等,通过对这几 ...

  2. Python进阶(二)

    1.模块和包的概念 python的解决方案是把同名的模块放到不同的包中 1.1,导入模块 要使用一个模块,我们必须首先导入该模块.Python使用import语句导入一个模块.例如,导入系统自带的模块 ...

  3. 浅析java线程和OS线程的关系

    探究java线程和OS线程之间的联系 一.准备工作 1.查看linux创建线程的方法    man pthread_create 根据man的配置可知,pthread_create会创建一个线程,这个 ...

  4. Struts2 常量配置

    除了action的配置,struts还有其他的一些配置,比如编码方式. 这些配置用键值对来表示,键是固定的,是常量,所以也叫做常量配置. 常量配置有5种方式,Struts会按以下顺序依次搜索加载常量( ...

  5. 服务器CPU很高,频繁FullGC排查小总结

    可以分为如下步骤: ①通过 top 命令查看 CPU 情况,如果 CPU 比较高,则通过 top -Hp 命令查看当前进程的各个线程运行情况. 找出 CPU 过高的线程之后,将其线程 id 转换为十六 ...

  6. MySQL中建立Oracle中SCOTT数据示例

    1.创建 scott 数据库 CREATE DATABASE scott; 2.创建 scott 数据库中的 dept 表 CREATE TABLE dept( deptno INT UNSIGNED ...

  7. linux基础-ssh服务

    SSH ssh 服务是实现管路服务器的一种方式: 本地管理(安装系统,故障修复),ssh 远程连接 linux 可以是实现远程连接的方式:ssh 命令 windows 可以实现远程连接方式: xshe ...

  8. 201871010126 王亚涛 《面向对象程序设计JAVA》第十四周学习总结

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

  9. 201871010135 张玉晶《面向对象程序设计(java)》第十一周学习总结

    项目 内容 <面向对象程序设计(java)> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/ ...

  10. flask中利用session实现用户记住密码

    “记住密码”的实质,实际上就是把cookie的有效期设置的长一点,当用户没有选择记住密码时,cookie的有效期为会话结束,选择记住密码后,会根据服务器的设置延长cookie的有效期,默认是31天.在 ...