merci de votre réponse benwit,j'ai déja fais ce que tu m'avais écris,mais ca se passe rien,quand je click sur connection dans le cas ou il sont correctent ou incorrectent ,pour la class Personne comme elle a dis caroline ,j'ai fais une Serializable,
voila j'ai rajouter le test de la nulitté de Personne (p) je sais pa si cest juste?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 AsyncCallback callback = new AsyncCallback() { public void onSuccess(Object result) { Personne p = (Personne) result; if (p != null){ RootPanel.get().clear(); RootPanel.get().add(new Acceuil());} else Window.alert("invalide"); } public void onFailure(Throwable caught) { Window.alert("invalide"); } }; validateButton.addClickListener(new ClickListener() { public void onClick(Widget sender) { if (login.getText().equals("")) { Window.alert("Veuillez taper votre login"); return; } if (ptb.getText().equals("")) { Window.alert("Veuillez taper votre mot de passe"); return; } AsyncCallback callback = new AsyncCallback() { public void onSuccess(Object result) { Boolean b = (Boolean) result; if (b != null && b.booleanValue() == true) { RootPanel.get().clear(); RootPanel.get().add(new Acceuil());} else Window.alert("invalide"); } public void onFailure(Throwable ex) { Window.alert("erreur"); } }; svc.CheckLogin(login.getText(), ptb.getText(), callback); // svc.checkLogin1(callback); } }); } MyServiceAsync rpc = MyService.Util.getInstance(); }
j'ai presque arrivé le probléme c'est parceque j'ai deux CheckLogin et ckeckLogin1,et il faut renvoyer le resultat de la deuxiéme au client ,car la premiére CheckLogin permet d'afficher les informations sur User.
maintenant il m'affiche "invalid",et si le login et passworde sont correcte il se dérige vers page "Acueil" ,mais le probléme il m'affiche pas les informations sur Personne"nom ,prenom",(sachant qu'il affichais avant ),je veux savoir ou je me suis trompé ,
voila code
s'il vous plais aidez moi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 deconnectButton.addClickListener(new ClickListener(){ public void onClick(Widget sender){ //_label.setText(" personne == null"); // svc.Deconnection(callback); redirect("http://localhost:8888/com.mycompany.project.Example/Example.html"); } }); } AsyncCallback callback = new AsyncCallback() { public void onSuccess(Object result) { Personne p = (Personne) result; if (p != null) _label.setText("prenom :"+p.getPrenom()+"nom :"+p.getNom()+"mail:"+p.getMail()+"taille:"+p.getTaille()+"adresse:"+p.getAdresse()); else _label.setText(" personne == null"); } public void onFailure(Throwable caught) { _label.setText("failure"); } };
Peut être mais dans la méthode checkLogin1 qu'elle montrait, elle retournait un booléen.
Aussi, si elle a une méthode qui retourne un booléen, dans le callback, il faut traiter le booléen.
Si elle a une méthode qui retourne une Personne, il faut traiter la personne.
Le probème, je crois que c'est la confusion dans tous cela. De plus les bout de code des callback ne servent pas à nous éclairer si on ne sais pas quelle méthode serveur est concerné.
Je pense que c'est ce que Caroline76 et benwit font avec un dévouement qui frise l'abnégation.
Mais ce qu'il faudrait surtout c'est que tu t'aides toi-même.
Comme je te l'ai dit : prends le temps d'examiner ce qui t'a été dit, de le comprendre, de le tester.
Comme le dit benwit, tu as tous les éléments nécessaires sur ce fil de discussion pour résoudre ton problème. De grâce, fait un peu de travail par toi-même plutôt que de demander un code tout fait.
On ne peut pas t'aider avec des informations parcellaires.
Tu nous montres ton objet de callback mais pas à quelles méthodes serveur tu le destine ???
Bon, résumons :
- Tu arrives sur ta première page, tu saisi un login, un password, et tu cliques sur un bouton. Là, l'écouteur de l'évènement appel la méthode CheckLogin qui nous retourne un booléen si l'utilisateur est trouvé et si le password correspond. Dans ton callback, tu testes ce booléen comme je te l'ai montré et tu affiches donc ta page d'accueil.
A cette étape, ta page d'accueil ne connait pas ton utilisateur et c'est donc normal que tu ne vois pas ces infos. Une solution consiste donc à appeler une méthode server qui te retourne l'utilisateur.
Ce que tu devrais commencer par faire, c'est de nommer clairement tes méthodes de ton service. Si tu en veux une qui vérifie uniquement le mdp, tu l'appelle checkLogin et si tu en veux une qui te retourne ta personne, tu l'appelles getPerson() sinon on ne s'en sortiras pas.
bonjour ts le monde
et oui 'est ce que je fais dans ma classe "Accueil",ici le serveur me renvois une Personne (car je veux afficher les informations de Personnne),mais je fais (svc.getPersonne(callback)),et je véréfie la nullité de personne (en bas),mais lors de l'exécution ,il me dérige vers la page "Accueil" ,mais avec
"_label.setText(" personne == null"" ,et pas le nom,prenom,...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 public Acceuil() { final MyServiceAsync svc = (MyServiceAsync) GWT.create(MyService.class); ServiceDefTarget target; target = (ServiceDefTarget) svc; target.setServiceEntryPoint(GWT.getModuleBaseURL() + "Registration"); ServiceDefTarget endpoint = (ServiceDefTarget) svc; endpoint.setServiceEntryPoint("/myService"); svc.getPersonne(callback); mainPanel = new VerticalPanel(); initWidget(mainPanel); Button valider = new Button(); FormPanel formPanel = new FormPanel(); final VerticalPanel mainPanel = new VerticalPanel(); RootPanel.get().add(mainPanel); mainPanel.setSize("100%", "100%"); final Button deconnectButton = new Button("Deconnection"); flexTable.setWidget(2, 2, deconnectButton); deconnectButton.setText("Deconnection"); deconnectButton.addClickListener(new ClickListener(){ public void onClick(Widget sender){ //_label.setText(" personne == null"); svc.Deconnection(callback); redirect("http://localhost:8888/com.mycompany.project.Example/Example.html"); } }); } AsyncCallback callback = new AsyncCallback() { public void onSuccess(Object result) { Personne p = (Personne) result; if (p != null) _label.setText("prenom :"+p.getPrenom()+"nom :"+p.getNom()+"mail:"+p.getMail()+"taille:"+p.getTaille()+"adresse:"+p.getAdresse()); else _label.setText(" personne == null"); } public void onFailure(Throwable caught) { _label.setText("failure"); } };
je ne comprends rien a ce que tu essaies de faire.
- la page accueil doit etre affichee apres verification du login si j'ai bien compris. Alors pourquoi est-ce que ton getPersonne(...) est dans la page accueil ?
- tu appelles "svc.getPersonne(callback);" sans donner les infos de login et de password. Comment ton serveur peut-il savoir que, par exemple, c'est "Roger18" qui veut se connecter avec son password "TopSecret" ?
- tu appelles ensuite "svc.Deconnection(callback);". Pourquoi avec la meme methode de callback que precedemment ?
ce que je fesais ca marchais trés bien avant, je veux dire avec n'importe quel password et login,mais là je voulais faire la véréfication de password et login ,coté serveur j'ai trois methode liés l'un à l'autren
CheckLogin:me renvois Personne
checkLogin1;me renvois Boolean
coté client je me suis confendu ,car quand je teste sur Personne il se connecte et me donne tous les informations sur Personne mais sans véréfication de passowrd et login,mais quand je teste sur Boolean(comme le code de benwit) il affiche "invalid" quand cest incorrecte mais le probléme il m'affiche pas les information de Personne,
Maintenant comment je vais tester mon callback sur Personne ou Boolean
Thread verrouillé.
Comme demandé, prends le temps de la réflexion
pour la descussion de "Connection (login+password)" c'est resolu ,merci en tous cas pour toute aide ,c'été un truc trés banales c'été que j"appel checkLogin1dans CheckLogin,et c'est tous
merci
C'est bien ce que nous te disions : un minimum de réflexion personnelle sur base des éléments fournis t'aurait permis de trouver la soution.
C'est quand même dommage qu'il faille en passer par le verrouillage de tes discussions pour que tu te décides.
Partager