2017-06-13 9 views
0

と私はオブジェクトを使用する単純なデータ転送クラスに私のコントローラで春@Validは、フォームの要求のために動作しますが、JSON本体

@Data 
public class UserDto { 

    @NotNull 
    @NotEmpty 
    private String username; 

    @NotNull 
    @NotEmpty 
    private String password; 

    @NotNull 
    @NotEmpty 
    private String email; 
} 

を持っていません。

@PostMapping("https://stackoverflow.com/users/create") 
public ResponseEntity<Object> createUser(@ModelAttribute("UserDto") @RequestBody @Valid UserDto accountDto, BindingResult bindingResult, HttpServletRequest request) { 
    System.out.println(accountDto); 
    System.out.println(accountDto.getUsername()); 
    System.out.println(accountDto.getPassword()); 
    System.out.println(bindingResult.hasErrors()); 

    return new ResponseEntity<>("success", HttpStatus.OK); 

} 

私は私のapiをテストするために郵便番号を使用しています。要求をformまたはx-www-form-urlencodedとして送信すると、正常に動作します。私は、出力以下の取得:

UserDtoを(ユーザ名= dsfssf、パスワード= dsfsdgfsg、[email protected]

dsfssf

偽dsfsdgfsg

ただし、リクエストをJSONオブジェクトとして送信する場合は、

{"username": "ssss", "password": "test", "email": "[email protected]" } 

私は取得していますすべてがある

UserDto(ユーザ名= nullを、パスワード= nullを、電子メール= null)の

ヌル

ヌル

+2

@ModelAttributeを削除してテストしましたか? –

答えて

2

@ModelAttributeを削除するか、要求内のデータを検索しますtパラメータ。

@RequestBodyだけでも、リクエストボディ内のデータを検索するようSpringに指示します。

関連する問題