您现在的位置是:首页 > 技术教程 正文

前端向后端传入json 后台怎么接收(params呢)

admin 阅读: 2024-03-28
后台-插件-广告管理-内容页头部广告(手机)

目录

一、使用POJO若前端传递过来的数据刚好和我们的bean实体对象属性一致,则可以使用对象的形式接收。后端实体类

二、使用Map接收后台Controller

三、使用@RequestParams

1,params传参

2.地址拼接传参


当前端传来json数据时,后端有多种方式接收
前端json数据:

  1. $.ajax({
  2. type:"POST",
  3. url:"",
  4. data:{
  5.      id:121,      //数字
  6.      name:"wb",     //字符串
  7.         },
  8. error=>{
  9. },
  10. success=>{
  11. }
  12. })


一、使用POJO
若前端传递过来的数据刚好和我们的bean实体对象属性一致,则可以使用对象的形式接收。
后端实体类

  1. @Component
  2. public class user{
  3.     private int id;
  4.     private String name;
  5. }


后端Controller

  1. @PostMapping("/student/user")
  2. public void getUser(@RequestBody User user){
  3.     System.out.println(user);
  4.     }


前端数据和bean对象属性要一致


必须使用@RequestBody注解

当前台传入数据除了实体类属性外还有其他数据

1.当通过params传入,则使用@RequestParams接收

2.当传入方式跟其他参数一样都是data传入则还是@RequestBody

又因为@RequestBody只能使用一次,所以此时使用实体类User获取不到所有属性,此时我们需要创建一个UserDTO继承User,且给他加入其他传入参数属性

public class UserDTO extends User{

        private String   age;

}

此时后台接收时如下

  1. @PostMapping("/student/user")
  2. public void getUser(@RequestBody UserDTO userDTO){
  3. //获取user对象 通过多态
  4. User u=userDTO;
  5. //获取除此之外的其他属性
  6. String age=userDTO.getAge();
  7.     }

二、使用Map接收
后台Controller

@PostMapping("/lhj/getdata")
public void getData(@RequestBody Mapmap){
    System.out.println(map);
    }
前端传来的是一个json对象时:{'id'=1,'name'='ww'},可以用Map来获取

@RequestMapping(value = "/update")
@ResponseBody
public String updateAttr(@RequestBody Map map) {
    if(map.containsKey("id"){
        Integer id = Integer.parseInt(map.get("id"));
    }
    if(map.containsKey("name"){
        String objname = map.get("name").toString();
    }
    return "success";
对于Map,值的类型建议设置为Object,这样可以使Map能接收各种类型的数据,如字符串、数字、数组和对象等。

三、使用@RequestParams

1,params传参

  1. $.ajax({
  2. url: "/search",
  3. method: "GET",
  4. params: "keyword=1",
  5. success: function(response) {
  6. }
  7. });

若前端请求时通过params传参数,则后端需要使用@RequestParams来与传入参数名相对应,

  1. @PostMapping("/search")
  2. public void getUser(@RequestParams("keyword") String keyword){
  3.     }

2.地址拼接传参

  1. $.ajax({
  2. url: "/search?name=hehe",
  3. method: "GET",
  4. params: "keyword=1",
  5. success: function(response) {
  6. }
  7. });

后端获取参数

  1. @PostMapping("/search")
  2. public void getUser(
  3. @RequestParams("keyword") String keyword,
  4. @RequestParams("name") String name){
  5. }

以上就是常见的前后端获取参数方式了~~~

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索
排行榜