Enregistrer telle quelle la valeur d'un JPasswordField dans la BD - Java - Programmation
Marsh Posté le 09-11-2013 à 05:45:07
Salut
Le truc que t'enregistres dans ta BD ca m'a tout l'air d'etre une adresse memoire. Vu que ce que tu montres a l'air correct, je parierais une piecette sur ce que tu passes au setter: a tous les coups tu lui passes ton <JPasswordField>.getPassword().toString(), qui renvoie une addresse memoire vu que getPassword() renvoie un tableau.
Essaies de remplacer par new String(<JPasswordField>.getPassword()) et ca devrait aller beaucoup mieux.
Marsh Posté le 10-11-2013 à 22:55:48
Bonsoir lasnoufle,j'ai très bien compris ton message mais il y a un autre problème, et c'est mon gros problème du MVC. Comment appéllé une méthode d'un formulaire du package A dans un autre du package B ?
voici ma procédure:
Pour l'enregistrement de l'utilisateur, j'ai d'abord créé le model (classe Utilisateur qui contient les getters et setters) dans le package A. Ensuite j'ai créé dans mon contrôleur une methode (AjouterUtilisateur qui prend en parametre l'utilisateur de mon model et qui retourne un booléen) dans le package B.
Enfin dans ma vue, dans le ActionPerformed du Bouton Enregistrer j'appelle la méthode ajouterUtilisateur(Utilisateur user) du contrôleur.
Mon problème est, comment puis-je depuis le getter du mot de passe du mondel, qui je précise retourne un String, récupérer la valeur exacte du mot passe saisi par l'utilisateur dans la vue ? Faut- il créer une instance de ma vue dans le model afin de récuperer la valeur du mot de passe par la méthode getMotDePasse, ou bien est -il possible, au lieu d'appeller la vue dans mon model de l'appellé dans le contrôleur?
voici la classe Utilisateur:
Code :
|
Controleur:
Code :
|
La vue:
Code :
|
Marsh Posté le 11-11-2013 à 15:45:43
Je pense que ton probleme est encore en amont. Le probleme se trouve (probablement, si j'ai devine juste) autour du setter, pas du getter. Quand tu appelles ton user.getMdp(), c'est deja trop tard, il contient deja l'adresse au format texte, au lieu du mot de passe reel.
Tu peux montrer le setMdp() de ta classe Utilisateur? Mais meme lui sera correct je suppose.
Ce qu'il faut que tu cherches, c'est l'endroit dans ton code ou le JPasswordField de ton UI est mis en relation avec setMdp();. C'est probablement la que ca se passe. Bon si tu utilises un MVC, je suppose que cette relation est peut-etre pas dans du code Java, mais ptetre dans un fichier de config genre XML ou que sais-je, malheureusement je m'y connais tres peu en MVC.
Marsh Posté le 09-11-2013 à 03:36:56
Bonsoir à tous, j'ai un souci avec le JPasswordField. Dans mon application je permets à l'utilisateur de modifier son mot de passe, le problème est que le mot de passe enregistré dans la BD n'est pas celle que l'utilisateur à saisi, du coup impossible de le modifier puisque mon application vérifie l'ancien mot de passe.
voici comment je récupère mon mot de passe:
dans mon model :
dans mon service:
quand je tape par exemple comme mot de passe <gras>ok </gras>il s'enregistre par exemple en :<gras>[C@147480e</gras><ital></ital> et pourtant j'aimerais qu'il s'enregistre comme tel. Merci bien de m'aider.
---------------
l'on s'enrichit d'avantage en partageant ces connaissances