Bonjour,

Je vous écris aujourd'hui, ayant besoin de votre aide.

Je rectifie le dernier problème que j'ai pour mon projet de fin d'étude en JEE, struts et hibernate.
Voila je vais décrire mon problème brièvement et âpres vous laisser avec les code des pages sollicité :

J'affiche la liste des utilisateur en exécutant le code java suivant:

InnitSuppUser.java: // Qui initialise la page d'affichage des utilisateur qui me sert a modifier et supprimer des utilisateur.
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
71
72
73
 
public class InitSuppUser extends org.apache.struts.action.Action {
 
    /* forward name="success" path="" */
    private static final String SUCCESS = "LienSuppUser";
     private static final String FAILURE = "deniedaccec";
 
    /**
     * This is the action called from the Struts framework.
     * @param mapping The ActionMapping used to select this instance.
     * @param form The optional ActionForm bean for this request.
     * @param request The HTTP Request we are processing.
     * @param response The HTTP Response we are processing.
     * @throws java.lang.Exception
     * @return
     */
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
         String log = new String();
 
log= (String) getServlet().getServletContext().getAttribute("login");
if(log!=null)
{
 
 
         Session session = HibernateUtil.getSessionFactory().getCurrentSession();
 
        try {
 
            System.out.println("Je suis la debut try");
            session.beginTransaction();
            /*List list=session.createCriteria(User.class).list();
            ArrayList<User> Lusers=(ArrayList<User>) list;*/
 
 
            Query query = session.createSQLQuery("SELECT u.`REF_USER`, u.`LOGIN`, u.`PASSWORD`,tu.`TYPE`,t.`NOM_UNITE` FROM `user` u,`unite` t,`type_user` tu WHERE u.`CODE_UNITE`= t.`CODE_UNITE` AND tu.`PB_TYPE`= u.`PB_TYPE`");
 
            //Je recupere le resultat et je le met dans une Arraylist
            ArrayList Lusers =(ArrayList) query.list();
 
 
           // J'utilise ca pour afficher le contenu de ma requette.
           /*
              List list=session.createCriteria(User.class).list();
            Iterator it = list.iterator();
 
              while(it.hasNext())
              {
 
               User u = (User)it.next();
             System.out.println(u.getLogin());
 
               }*/
 
              //Je passe L'arraylist en paramatre a ma page JSP
           request.setAttribute("users",Lusers);
 
            System.out.println("Je suis à la fin try");
             } catch (Exception e) {
            e.printStackTrace();
        }
 
        //En cas de resussite je fait appel a l'action InitSuppUser qui m'affiche les liste des utilisateurs
        return mapping.findForward(SUCCESS);
 
    }
else
          return mapping.findForward(FAILURE);
 
    }
}
Je passe donc une Arraylist a cette page

SuppUser.jsp:
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
 
// J'ai ca en haut de la page 
<jsp:useBean id="SuppUserForm" scope="request" type="com.myapp.struts.SuppUserForm"></jsp:useBean>
 
 
//Dans ma page JSP j'ai le bout de code suivant
//Je reçoit une Arraylist de la Servlet et j'affiche la liste des utilisateurs
<c:forEach var="user" items="${users}">
		<tr>
	 <th class="spec"><c:out value="${user[1]}"/></th>
         <td><c:out value="${user[2]}"/></td>
         <td><c:out value="${user[3]}"/></td>
         <td><c:out value="${user[4]}"/></td>
 
         <td><a href="<c:url value="/LienModifUser.do?id=${user[0]}"/>"><img src="./css/images/reglage.png" alt="Modifier" /></a></td>
         <td><a href="<c:url value="/suppUser.do?id=${user[0]}"/>"><img src="./css/images/delete.png" alt="Supprimer" /></a></td>
	</tr>
        </c:forEach>
Apres Modification d'un utilisateur je renvoi l'admin à la Page SuppUser.jsp bien sur en exécutant la servlet initSuppUser.java pour aller chercher les utilisateurs dans la base.

Le résultat s'affiche Bien dans ma Page SuppUser.jsp avec les modifications que j'ai faites sur un utilisateur.


Pour Faire beuger mon Application ( tester)
J'ai un Bouton dans le code et le suivant:

Bouton : Modifier/Supp Utilisateurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<a href="<%=request.getContextPath() %>/LienSuppUser.do">Modifier/Supp Utilisateurs</a>
Struts recupere ce lien :

Struts-config.xml:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
// struts recupere l'action et execute la servlet initSuppUser precedente
<action
path="/LienSuppUser"
name="SuppUserForm"
scope="request"
type="com.myapp.struts.InitSuppUser"
validate="false"
/>
La Servlet InitSuppuser.java ne fait qu'Initialiser L'interface Web SuppUser.jsp avec la liste des utilisateurs se trouvant dans la base.

OK Mnt pour tester j'appuis sur

Bouton : Modifier/Supp Utilisateurs

La après quelque Clic les anciens enregistrements reviennent de nulle part et la J'ai les ancien login que j'ai modifié et que après vérification elles sont bien changer dans ma base.

Encore quelque clic et la j'ai mes nouveau enregistrement que j'ai modifié qui reviennent et rebelote des clics sur le bouton et les anciens enregistrements reviennent d'autre clic font afficher les nouveau enregistrement pourtant dans ma base j'ai bien les nouveau enregistrement.


Tout mon projet subie ce bug gênant, qui pour l'entreprise signifie un Echec de mon projet.

J'ai testé, Je me déconnecte de l'application et je reviens toujours le même problème, le seul moyen étais de relancer Tomcat Apache et la plus aucun problème jusqu'à une nouvelle modification ou d'un ajout d'une données toujours le même problème.