Bonjour,


J'aimerais afficher dynamiquement tout un flux de message d'error sur une Jsp.
pour cela j'ai développé ceci :



JSP :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
 
 
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.

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
 
 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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.