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代表可以不 ...
随机推荐
- wordpress 数据查询-全局注入-模板数据消费输出简图
我一直比较好奇,类似于wordpress这样的CMS,它可以做的很灵活,同样的软件,为什么就能做出几乎完全不具有相似性的不同站点来呢?除了功能可以有大不同以外,即便是相同的简单blog站他们的外观也可 ...
- python中class的总结
思维导图文件:https://files-cdn.cnblogs.com/files/benjieming/class%E6%9C%BA%E5%88%B6.zip
- 关于css中布局遇到的一些问题
现在本人初学网页布局经常遇到一些布局问题比如图片错位. 遇到的问题以及解决方案如下 行内元素有缝隙 块级元素没有缝隙 行内块元素中间会有小缝隙 常见的解决办法就是浮动
- SimpleTagSupport 获取request、session
开发jsp系统时,我们经常会用到tag来写java的逻辑代码,一般会继承两个类,一个是SimpleTagSupport,另一个是TagSupport,由于TagSupport书写配置比较复杂(我个人才 ...
- Google Analytics 学习笔记四 —— GA的Channels划分规则
一.流量的Source.Medium和Campaigns 1.Source Source或traffic source通常表示流量的来源,一般通过urm_source参数跟踪 在GA中,流量来源的名字 ...
- selenium鼠标操作 包含右击和浮层菜单的选择
感谢http://www.cnblogs.com/tobecrazy/p/3969390.html 博友的分享 最近在学习selenium的一些鼠标的相关操作 自己在百度的相关操作代码 /** * ...
- 【vuejs】vue数组操作
问题:两种操作都能给数组添加数据,但是利用下标添加数据不会自动在视图中渲染,这个是和vue自己的规定有关,这里记录一下 网上到原因,这里附转载链接 点我传送 官网相关说明传送门
- for循环,数字、字符串和列表内置方法
目录 控制流程之for循环 基本语法 for+break for+continue for+else for循环打印lodaing 数字类型内置方法 整型 int 浮点型 float 字符串内置方法 ...
- 基本SQL语句使用方法
结构:增: create database 库名 charset 字符集: create table 表名称(字段名 类型 约束 ,字段名 类型 约束) not null 非空primary key ...
- Linux IO 概念(2)【转】
转自:https://www.cnblogs.com/qq289736032/p/9188455.html 在上一篇IO底层的概念中杂合了很多模糊的概念,受知识水平的限制,只是从网上抄了很多过来.从l ...