Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 如何从服务器上的post接收多个正文数据_Spring_Post_Fetch - Fatal编程技术网

Spring 如何从服务器上的post接收多个正文数据

Spring 如何从服务器上的post接收多个正文数据,spring,post,fetch,Spring,Post,Fetch,我正试图从我的客户机向我的服务器发送一个新用户+一个带有此代码的验证Id fetch('http://localhost:8080/users/student', { method: 'POST', body: JSON.stringify({"email":email, "firstName": firstName, "lastName": lastName, "idToken": idToken}),

我正试图从我的客户机向我的服务器发送一个新用户+一个带有此代码的验证Id

 fetch('http://localhost:8080/users/student', {
            method: 'POST',
            body: JSON.stringify({"email":email, "firstName": firstName, "lastName": lastName,
            "idToken": idToken}),
          headers: {
            'content-type': 'application/json'
          },
        }).then(response => { return response.json();
        }).then(data => {
          console.log(data);
        });
我的控制器上的方法是

@RequestMapping(value = "/student", method = RequestMethod.POST)
private User createStudent(@RequestBody User user) {
    user.setId(null);
    user.setUserType(UserType.STUDENT);
    //verify the user and create custom role
    return userService.save(user);
}

问题是,我无法使用user.idToken访问验证令牌,因为idToken不是用户属性,因此,我如何分别使用用户属性和idToken接收正文?

您可以选择以下方法之一:

  • 考虑将
    User
    类扩展为
    UserWithToken
    将包含来自
    User
    类以及
    idToken
  • 另一种方法是使用
    QueryParam
    并将其传递到URL中。 例如:
    /student?idToken=您的令牌id

  • 您可以选择以下方法之一:

  • 考虑将
    User
    类扩展为
    UserWithToken
    将包含来自
    User
    类以及
    idToken
  • 另一种方法是使用
    QueryParam
    并将其传递到URL中。 例如:
    /student?idToken=您的令牌id

  • 您可以创建扩展
    用户
    类的类:

    public class UserDto extends User {
    
        private String idToken;
    
        // getter / setter
    }
    
    因此,您可以将此对象传递给您的方法:

    private User createStudent(@RequestBody UserDto user) {
        // user.getIdToken(); available
    }
    

    如果需要返回令牌,您可以将返回类型更改为
    UserDto

    您可以创建一个类来扩展您的
    用户
    类:

    public class UserDto extends User {
    
        private String idToken;
    
        // getter / setter
    }
    
    因此,您可以将此对象传递给您的方法:

    private User createStudent(@RequestBody UserDto user) {
        // user.getIdToken(); available
    }
    

    如果需要返回令牌,您可以将返回类型更改为
    UserDto

    使用所需的所有数据创建一个
    Dto
    ,然后返回它。我不习惯Dto,您的意思是我创建一个新类,例如使用每个用户属性+idToken的UserDto,然后使用UserDto创建我的用户+使用idToken?例如,但是您也可以创建一个类来扩展
    User
    类,并添加
    idToken
    属性。或者是一个
    Dto
    带有
    User
    idToken
    字段的
    Dto
    。创建一个
    Dto
    ,包含您需要的所有数据并返回它。我不习惯Dto,您的意思是我创建一个新类,例如使用每个用户属性+idToken的UserDTO,然后使用UserDTO创建我的用户+使用idToken?例如,但是您也可以创建一个类来扩展
    User
    类,并添加
    idToken
    属性。或带有
    User
    idToken
    字段的
    Dto