Bonjour,
J'aimerais afficher dynamiquement tout un flux de message d'error sur une Jsp.
pour cela j'ai développé ceci :
JSP :
1 2 3 4 5 6 7 8 9 10 11
| <%@ taglib uri="/WEB-INF/lib/struts-html.tld" prefix="html" %>
<h2><img src="../pic/red_error.png" > woops !</h2>
<br/>
<html:errors/>
<html:link action="/login">
Connection
</html:link> |
Mon ActionPilox qui orientera l'user si il peut accéder à cette page
genre il rentre le chemin d'accès directement sur url (pour les ptits malins)
Toutes mes Actions passeront par cette étapes de vérifications
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
|
import ...
public abstract class ActionPilox extends Action {
@Override
public final ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
UserStatus userStatus = new UserStatus();
if(!userStatus.processRoles(request, response, mapping)){
return mapping.findForward(WebConstantes.FAILURE);
}
return executeAction(mapping, form, request, response);
}
public abstract ActionForward executeAction(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception;
} |
Et ma classe qui fera le traiement de vérification ID et Session, renvoie true ou false, si "oui" il peut se connecter, "non" il ne peut se connecter"
Tout commencera à partir de Public processRoles qui appelera Private isUserConnected et Private isSessionValid.
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
|
import ...
public class UserStatus {
// On verifie si l'utilsateur est bien connecté
private static boolean isUserConnected(HttpServletRequest request) {
if (request != null) {
HttpSession session = request.getSession(false);
User user = null;
if (session != null) {
user = (User) session.getAttribute("user");
}
return user != null;
}
return false;
}
// On vérifie si la session a expirée : la session expire si l'id de la session n'est pas valide
private boolean isSessionValid(HttpServletRequest request) throws ServletException {
if (request != null) {
return request.isRequestedSessionIdValid();
}
return false;
}
public boolean processRoles(HttpServletRequest request, HttpServletResponse response, ActionMapping mapping)
throws java.io.IOException, javax.servlet.ServletException {
ActionMessages messages = new ActionMessages();
if (isSessionValid(request)) {
if (isUserConnected(request)) {
return true;
} else {
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("erreurs.connection.required"));
}
} else {
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("erreurs.session.expired"));
}
// false : ne pourra accéder a cette page.
return false;
}
} |
le problème c'est que je n'arrive pas a afficher la nature de l'erreur.
le :
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("erreurs.session.expired"));
je passe bien sur par le framework Struts, et j'utilise des Tiles, si cela a une influence quelconque.
Merci beaucoup, si vous avez le courage de jeter un petit coup d'œil.
Partager