数据交互
【摘要】 数据交互在项⽬中,经常会遇到这样的场景,前端⻚⾯中发送ajax请求给Controller中的处理⽅法,处理⽅法返回json格式的字符串给这个ajax请求。当然,前⾯⻚⾯发送的请求中携带的参数,也可以是正常的k=v的形式 接收参数 1、参数是基本数据类型/包装类型/String@RequestMapping("test") public String test(int age){...}pu...
数据交互
在项⽬中,经常会遇到这样的场景,前端⻚⾯中发送ajax请求给Controller中的处理⽅法,处理⽅法返回
json格式的字符串给这个ajax请求。
当然,前⾯⻚⾯发送的请求中携带的参数,也可以是正常的k=v的形式
接收参数
1、参数是基本数据类型/包装类型/String
@RequestMapping("test") public String test(int age){...}
public String test(long id){...}
public String test(boolean flag){...}
public String test(Long id){...}
public String test(String name){...}
注意,参数名字要和客户端传的参数名⼀致,否则需要使⽤
@RequestParam 来指定参数名
2.参数是数组类型
@RequestMapping("test") public String test(int[] age){...}
public String test(long[] id){...}
public String test(boolean[] flag){...}
public String test(Long[] id){...}
public String test(String[] name){...}
注意,客户端传值类似于这样:name=tom&name=lisi
3、参数是数组类型(json格式)
@RequestMapping("/index")
@ResponseBody
public String index(@RequestBody String[] arr){...}
4、参数是类类型
例如,实体类Uesr、Student等
@RequestMapping("test")
public String test(User user){...}
注意,客户端传值类似于这样:
id=1&name=tom&dob=1999-11-11
5、参数是类类型的数组(json格式)
@RequestMapping("/test")
public String test(@RequestBody User[] users){...}
6、参数是List/Set集合(json格式)
@RequestMapping("/index")
@ResponseBody
public String index(@RequestBody List<String> list){...}
例如:
@RequestMapping("/index")
@ResponseBody
public String index(@RequestBody List<User> list){....}
7、参数是Map集合(json格式)
@RequestMapping("/index")
@ResponseBody
public String index(@RequestBody Map<Long,User> map){...}
8 采⽤restful⻛格进⾏请求:
@RestController
public class UserController {
@GetMapping("/hello/{userid}")
public String hello(@PathVariable("userid") String userid) {
System.out.println(userid);
return userid;
}
}
返回数据
1、给ajax请求返回单值
@ResponseBody
@RequestMapping(value="test1",consumes="application/json",produces="applic
ation/js
on" ,method=RequestMethod.POST)
public String test1(@RequestBody User user){
System.out.println("user = "+user);
return "hello world";
}
2、给ajax请求返回数组(json格式)
@ResponseBody
@RequestMapping(value="test2",consumes="application/json",produces="applicat
ion/js on" ,method=RequestMethod.POST)
public String[] test2(@RequestBody User user){
System.out.println("user = "+user);
return new String[]{"hello","world","tom"};
}
3、给ajax请求返回⾃定义类型的数组(json格式)
@ResponseBody
@RequestMapping(value="test3",consumes="application/json",produces="applicat
ion/js on" ,method=RequestMethod.POST)
public User[] test3(@RequestBody User user){
System.out.println("user = "+user);
return new User[]{new User(1L,"tom1"),new User(2L,"tom2"),new
User(3L,"tom3")};
}
4、给ajax请求返回List集合(json格式)
@ResponseBody
@RequestMapping(value="test4",consumes="application/json",produces="applicat
ion/js on" ,method=RequestMethod.POST)
public List<User> test4(@RequestBody User user){
System.out.println("user = "+user);
return Arrays.asList(new User(1L,"tom1"),new User(2L,"tom2"),new
User(3L,"tom3"));
}
5、给ajax请求返回Set集合(json格式)
@ResponseBody
@RequestMapping(value="test5",consumes="application/json",produces="applicat
ion/j son" ,method=RequestMethod.POST)
public Set<User> test5(@RequestBody User user){
System.out.println("user = "+user);
Set<User> set = new HashSet<>();
set.add(new User(1L,"tom1"));
set.add(new User(2L,"tom2"));
set.add(new User(3L,"tom3")); return set;
}
6、给ajax请求返回Map集合(json格式)
@ResponseBody
@RequestMapping(value="test6",consumes="application/json",produces="applicat
ion/j son" ,method=RequestMethod.POST)
public Map<String,User> test6(@RequestBody User user){
System.out.println("user = "+user);
Map<String,User> map = new HashMap<>();
map.put("tom1", new User(1L,"tom1"));
map.put("tom2", new User(2L,"tom2"));
map.put("tom3", new User(3L,"tom3"));
return map;
}
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)