Bonjour j'ai lu le faq struts pour la gestion des sessions et j'ai codé une classe TestRequestProcessor qui hérite RequestProcessor.voici le code de la classe
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
package org.etafat;
import org.apache.struts.action.RequestProcessor;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionForward;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.ServletException;
 /*
 * @author Administrateur
 */
public class TestRequestProcessor extends RequestProcessor {
 
    /** Creates a new instance of TestRequestProcessor */
    public TestRequestProcessor() {
    }
 
 
    // On verifie si l'utilsateur est bien connecté 
protected boolean isUserConnected(HttpServletRequest request) {
 
    String  user=null;
    if (request != null) {
    HttpSession session = request.getSession(false);
 
        if (session != null) {
       user =  (String) session.getAttribute("login");
        }
 
        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
protected boolean isSessionValid(HttpServletRequest request)
throws  ServletException {
if (request != null) {
    return request.isRequestedSessionIdValid();
}
 
 return  false;
}
 
protected 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"));
    }
    // rediriger vers une page d'erreur
request.getRequestDispatcher ("/error.jsp").forward(request,response);
 
return false;
}
 
}
et puis j'ai mis dans le fichier struts-config.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
<controller>
<set-property property="processorClass" value="org.etafat.TestRequestProcessor"/>
</controller>
et puis j'ai essayé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
<controller processorClass="org.etafat.TestRequestProcessor"/>
et dans les deux cas ça me génére l'erreur Servlet action n'est pas disponible.

donc l'erreur vient du fichier struts-config.xml.
Je demande une solution car je veux gérer la session des utilisateurs.