Question

Je me demandais, je suis sur quelque chose ou ne le validateur mise en veille prolongée offre aucune annotation pour vérifier que 2 champs sont égaux (comme un mot de passe). Je sais que je peux écrire mes propres validateurs, mais bien cela semble être une fonctionnalité standard.

Était-ce utile?

La solution 3

Nous sommes allés pour la route validateur personnalisé. Les 2 autres réponses ici ne sont pas vraiment liées à la question. Avec un peu de googler je trouve un exemple fieldmatch.

Autres conseils

Si vous utilisez Spring Framework, vous pouvez alors utiliser la langue d'expression de printemps (SPEL) pour cela. J'ai écrit une petite bibliothèque qui fournit JSR-303 validateur basé sur Spel qui fait cross-champ de validation très facile. Jetez un oeil à https://github.com/jirutka/validator-spring .

validera l'égalité des champs de mot de passe quand au moins un d'entre eux est pas vide.

@SpELAssert(value = "password.equals(passwordVerify)",
            applyIf = "password || passwordVerify",
            message = "{validator.passwords_not_same}")
public class User {

    private String password;
    private String passwordVerify;
}

Un exemple bien aménagé qui répond à un problème similaire à-dire, la validation croisée champ:

validation croisée sur le terrain avec Hibernate validateur (JSR 303)

Mise en veille prolongée est un ORM Mapper.

Il est utilisé pour maintenir les données dans un DB et l'extraire à nouveau. En tant que tel, ayant 2 champs avec une valeur identique est logique pas grand-chose (D'un point de vue persistence). Cest quelque chose que vous devriez vérifier dans votre logique métier.

Je suis avec Junesh ... Ne pas vos mots de passe persistent un format ... Regardez en récupérable Hasing et salaison - Ou mieux encore, pensez à openID si vous n'avez pas déranger vos clients avec un autre mot de passe stupide .. .

J'espère que vous ne sauvegardez pas le mot de passe de confirmation dans la base de données ainsi. Vous ne pas sortir de la boîte validateurs, mais au contraire, vous devrez utiliser l'annotation personnalisée qui est assez simple aussi bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top