SpringMVC参数传递方案
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参数传递方案的更多相关文章
- 使用SpringMVC参数传递时,解决get请求时中文乱码的问题
		
问题描述: 使用SpringMVC参数传递时, 遇到get请求中文信息时,页面应答会显示中文乱码. 解决办法: 一, 我们需要把request.getParameter(“参数名”)获取到的字符串先 ...
 - SpringMVC参数传递 HttpServletRequest,HttpServletResponse和HttpSession
		
SpringMVC参数传递 HttpServletRequest,HttpServletResponse和HttpSession 2017-11-27 16:44:51 douunderstand 阅 ...
 - 8.SpringMVC参数传递
		
页面参数传递到controller, 可被同名(与页面标签上的name名对应)的参数接收,用request设值,页面再取出来. 注意乱码解决办法: ①如果是get提交,则在tomcat的server. ...
 - SpringMvc参数传递中乱码问题
		
问题描述: 当传递中文参数到controller类时,无乱是get方式还是post方式都出现乱码 解决: 1.保证所有的页面编码都是utf-8,包括jsp页面,浏览器编码设置和eclipse的编码设置 ...
 - springMVC参数传递
		
web.xml文件 <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi=& ...
 - Quartz集成springMVC 的方案二(持久化任务、集群和分布式)
		
Quartz是一个开放源码项目,专注于任务调度器,提供了极为广泛的特性如持久化任务,集群和分布式任务等. Quartz核心是调度器,还采用多线程管理. 1.持久化任务:当应用程序停止运行时,所有调度信 ...
 - Quartz集成springMVC 的方案一
		
Quartz是一个开放源码项目,专注于任务调度器. springMVC 具体的搭建框架就不具体说明,接下来直接描述把Quartz集成到springMVC 框架中. 步骤: 1.引入所需要的jar包 2 ...
 - springMvc参数传递的方法
		
package cn.edu.hj.controller; import java.util.Map; import javax.servlet.http.HttpServletRequest; im ...
 - SpringMVC——参数传递
		
一.接收零散参数 1.装配原则为传递参数名和方法接收参数名一致 2.手动装配@RequestParam name代表页面发送的参数名字 required代表参数是否必须传递 false代表可以不 ...
 
随机推荐
- 面试前必须要知道的21道Redis面试题
			
1.使用redis有哪些好处? 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) 支持丰富数据类型,支持string,list,set,so ...
 - nodejs-翻转算法
			
nodejs-翻转算法 /** * Created by moon on 2019/12/14. */ //程序运行完成时一定要有输出语句,本工具才能正确展示运行结果. function abc() ...
 - Java多线程——查看线程堆栈信息
			
Java多线程——查看线程堆栈信息 摘要:本文主要介绍了查看线程堆栈信息的方法. 使用Thread类的getAllStackTraces()方法 方法定义 可以看到getAllStackTraces( ...
 - scrapy框架抓取表情包/(python爬虫学习)
			
抓取网址:https://www.doutula.com/photo/list/?page=1 1.创建爬虫项目:scrapy startproject biaoqingbaoSpider 2.创建爬 ...
 - logstash将redis中的队列中数据发送到influxdb数据库中
			
通过elk获取到的java jvm中ygc的时间如下: 现在讲ygc字段的值,发送到influxdb中 首先安装logstash的插件 logstash-output-influxdb 安装完成后,查 ...
 - animations与transition
			
transition过渡 和animation 动画 要知道 transition过渡和animation动画都是实现元素运动的一种方式.区别在于: transition过渡需要人为触发,例如点击触发 ...
 - SQL Server学习内容(一)
			
SQL Server SQL Server对大小写不敏感,每条语句末端使用分号. 1.SQL命令 SELECT 从数据中提取数据 UPDATE 更新数据中的数据 DELETE 从数据库中删除数据 IN ...
 - DotNet Core管道通信
			
前言 在之前,我们需要明确的一个概念是, Web 程序中,用户的每次请求流程都是线性的,放在 ASP.NET Core 程序中,都会对应一个 请求管道(request pipeline),在这个请求管 ...
 - 201871010108-高文利《面向对象程序设计(java)》第十一周学习总结
			
项目 内容 这个作业属于哪个课程 <任课教师博客主页链接> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址> ht ...
 - SQL-on-Hadoop 技术
			
SQL-on-Hadoop 技术 备注 Apache Hive Cloudera Impala Facebook Presto Apache Drill Spark SQL Apache Phoeni ...