2017-06-13 2 views
0

je une simple classe de transfert de donnéesSpring @Valid travaille pour les demandes de forme, mais pas avec le corps JSON

@Data 
public class UserDto { 

    @NotNull 
    @NotEmpty 
    private String username; 

    @NotNull 
    @NotEmpty 
    private String password; 

    @NotNull 
    @NotEmpty 
    private String email; 
} 

Dans mon contrôleur je veux utiliser l'objet. J'utilise postman pour tester mon API. Les demandes fonctionnent correctement lors de l'envoi en tant que form ou x-www-form-urlencoded. Je me sortie suivante:

UserDto (nom d'utilisateur = dsfssf, mot de passe = dsfsdgfsg, [email protected])

dsfssf

dsfsdgfsg

faux

Toutefois, lors de l'envoi de la demande en tant qu'objet JSON comme

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

Tout ce que je reçois est

UserDto (nom d'utilisateur = null, mot de passe = null, email = null)

null

null

vrai

+2

Avez-vous essayé de supprimer le @ModelAttribute et de le tester? –

Répondre

2

Retirer @ModelAttribute ou il va chercher les données à l'intérieur des reques t paramètres.

@RequestBody indique à Spring de rechercher les données dans le corps de la requête.