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. jenkins19年最新最管用的汉化

    今天准备学学jenkins ,官方下载了一个最新版本,发现是英文版,网上找个许多汉化方式,几乎都是一种,下载插件 :Locale plugin ....很尴尬,下载完了还是没有汉化 ,是不是jenki ...

  2. 单词chalchiguite硬玉chalchiguite英语

    翡翠在我国明确地称为硬玉(chalchiguite) ,可能始于宋代.19世纪后半叶,法国矿物学家德穆尔将中国的“玉”分为软玉和硬玉(见地质情报所:<翡翠冲的<国外地质科技>,198 ...

  3. vue父子组件的通信

    一.父组件向子组件传递数据 1.首先形成父子组件关系 <!DOCTYPE html> <html lang="en"> <head> <m ...

  4. 从未被Google过 #NerverBeenGoogled

    我相信大家都用Google搜索互联网上的东西,Google会跟踪你搜索的所有内容,但是你或许不知道,他们也记录着从未被Google过的内容.我有个清单,这些是有史以来从未被Google过的一些东西1. ...

  5. Django 练习班级管理系统二 -- 添加班级数据

    在上一篇中(Django 练习班级管理系统一 https://www.cnblogs.com/klvchen/p/11078174.html),使用的是莫泰对话框的方式提交数据,适用于数据量少的操作. ...

  6. influxdb-1.7.8(centos 7) 部署

    1.官方下载: https://dl.influxdata.com/influxdb/releases/influxdb-1.7.8.x86_64.rpm 2.安装软件 sudo yum locali ...

  7. Rust中的字符串处理

    一路看过来,怕是我知道的所有语言当,处理最复杂吧. 当然,如果能正确处理,也是能理解最到位的. 这,就是我为什么要学Rust的原因. 暂无用武之地,但逻辑体系和知识点够复杂,才能应对更多事务~ fn ...

  8. python字符串的split replace strip

    split replace strip是字符串中内置的三个函数,作用分别是分割 替换 去空格 0x01:split split(a,b):用指定的字符(a)分割字符串,可以限制分割的次数(b),返回一 ...

  9. uiautomator 调试例子

    package com.bing.cn; import com.android.uiautomator.testrunner.UiAutomatorTestCase; public class Dem ...

  10. win10 配置 hadoop-2.7.2

    win10 配置 hadoop-2.7.2 1.下载 先在 http://acrchive.apache.org/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7. ...