Formulaires partiels
Dans certains cas, on voudra que l'utilisateur remplisse un formulaire partiel ou différent de la structure complète d'un objet. Par exemple, si on veut ajouter des propriétés par défaut à un objet, ou si on doit ajouter de l'information.
Exemples:
- Confirmation de mot de passe
- Ajout de rôles par défaut à un utilisateur
- Ajouter l'utilisateur courant dans une propriétée de style "créé par".
Utiliser un DTO (Data Transfer Object)
- Pour conserver les avantages de Spring et des balises
<form:form>on pourra créer un objet représentant le formulaire. - On utilisera l'information récupérée dans cet objet pour créer celui qu'on veut dans la base de données.
- Un DTO se combine bien avec l'utilisation d'un
Builderpour créer un objet.
Prenons l'exemple d'un utilisateur, on voudra encoder son mot de passe et lui donner un rôle par défaut. Ces informations ne devraient pas provenir directement du formulaire d'inscription à l'application.
public Utilisateur addUser(UtilisateurDTO user) {
// Création d'un utilisateur avec un `builder`
Utilisateur utilisateur = Utilisateur.builder()
.email(user.getEmail())
.nom(user.getNom())
.prenom(user.getPrenom())
.username(user.getUsername())
.role(roleService.findByNom("ROLE_USER"))
.password(passwordEncoder.encode(user.getPassword()))
.build();
return utilisateurRepository.save(utilisateur);
}