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