Bonjour,
Je suis débutante en Struts 2 et je veux créer à travers le formulaire de connexion une session pour l'utilisateur qui s'est connecté mais avec ce que j'ai essayé de faire ,je vois que ça marche pas .
Voilà ce que j'ai essayé de faire :dans le package ACTION ,j'ai créé deux méthodes authentification là où j'introduits la notion de la session et la méthode deconnexion pour fermer la session :
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
|
public String authentification() {
String testSUCCESS = null;
List<Candidat> listCandidat = ServiceCandidat.getInstance().allCandidats();
for (Iterator<Candidat> iterator = listCandidat.iterator(); iterator
.hasNext();) {
Candidat candidatBd = (Candidat) iterator.next();
if ((candidatBd != null)
&& candidatBd.getMail().equals(candidat.getMail())
&& candidatBd.getPassword().equals(candidat.getPassword())) {
testSUCCESS = "success";
break;
} else {
testSUCCESS = "ERROR";
}
}
if (testSUCCESS.equals("success")) {
//******************** Gestion de session********************************//
// on récupère la session courante
Map session = ActionContext.getContext().getSession();
// on renseigne la session
session.put("verifierAuthentification", "true");
session.put("nomUtilisateur", candidat.getLogin());
System.out.println("Vous êtes loggué avec succès enjoy :)");
return "success";
} else {
addActionError("Votre email ou mot de passe est incorrect");
return ERROR;
}
}
public String deconnexionCandidat() {
// on récupère la session courante
Map session = ActionContext.getContext().getSession();
session.clear();
return "success";
} |
dans le fichier struts.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
<action name="authen"
class="ma.mef.gestionConcours.action.ActionCandidat" method="authen">
<result name="success">candidat.jsp</result>
<result name="input">candlogin.jsp</result>
<result name="error">candlogin.jsp</result>
</action>
<action name="deconnexion"
class="ma.mef.gestionConcours.action.ActionCandidat" method="deconnexion">
<result name="success">candlogin.jsp</result>
</action> |
la page où il y a le formulaire d'authentification est la page candlogin.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <div id="titleForm"> AUTHENTIFICATION</div><br/>
<s:actionerror />
<s:form name="login" action="authen" >
<table >
<tr >
<s:textfield label="Adresse email" name="candidat.mail" id ="candidat.mail" />
</tr>
<tr>
<s:password label="Password " name="candidat.password" id ="candidat.password"/>
</tr>
<tr>
<td colspan="2"><div align="right">
<input type="submit" value="Me connecter à mon espace candidat" class="bouton"/>
</div></td>
</tr>
</table>
</s:form> |
après la réussite de l'authentification,ça aboutit à la page candidat.jsp
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
| <div class="GlobalPage">
<%@ include file="includes/header.jsp"%>
<h1 align=center>Espace Candidat</h1>
<s:if test="#session.verifierAuthentification = 'true'">
<h3>Bienvenue :
<span><s:property value="#session.nomUtilisateur" /></span>
</h3>
</s:if>
<br/><br/><br/>
<%@ include file="includes/menuvertcand.jsp"%>
<div class="MainPage">
<br /> <br />
</div>
</div> |
dans cette page ,il y a un petit message qui s'affiche
<span><s:property value="#session.nomUtilisateur" /></span>
Cependant ,quand l'authentification a réussi la valeur #session.nomUtilisateur
est null
ça m'affiche juste Bienvenue avec un espace blanc
je veux noter juste que je travaille avec la classe Candidat qui a 4 attributs:
id,mail,login,password
quand je fais l'authentification ,c'est avec le mail et le password ;mais ce que je veux c'est récupérer le login correspondant au mail et password donc dans mon cas ça me renvoie null.
s'il vous plaît aidez moi.
Partager