Comment avoir une variables sur tout les formulaire

Résolu/Fermé
Signaler
Messages postés
6
Date d'inscription
mardi 19 août 2014
Statut
Membre
Dernière intervention
25 août 2014
-
Messages postés
6
Date d'inscription
mardi 19 août 2014
Statut
Membre
Dernière intervention
25 août 2014
-
Bonjour tout l monde ,je me retrouve dans une situation un peut délicate je suis actuellement entrain de développé une application en jee (gestion de patrimoine) , voila comment j'ai procédé quand je fais un load de formulaire c'est via ajax jquery dont l'url est l'action qui active une méthode dans une class pour récupérer sois une liste ou une variable pour etre afficher quand je charge le formulaire(peuplé la combo ou un champ) , sa marche parfaitement , mais le problème c que je veux avoir l'id_employer accessible partout dans les formulaire que je load pour etre plus précis , l'id de la personne connecter , comme sa elle peut consulté le matériel qu'il lui est affecter , demandé un nouveau matériel en consultant le matériel disponible ,etc ... , je suis encccoree nouveau en jee donc une idée sera le bienvenue , et merci d'avance :)

2 réponses

Messages postés
16439
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
1 décembre 2021
2 918
Bonjour,

Ce qui se fait généralement c'est stocker cette information en session. Ainsi tu n'as pas à te promener avec l'identifiant dans chaque formulaire, il est déjà sur le serveur. Le seul identifiant à conserver c'est celui de la session (JSESSIONID) mais normalement tu ne t'en occupes pas, le serveur gère ça tout seul avec des cookies.
Messages postés
6
Date d'inscription
mardi 19 août 2014
Statut
Membre
Dernière intervention
25 août 2014

donc maintenant je pourrais récupérer l'id dans n'importe quel page jsp de mon projet ???
Messages postés
16439
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
1 décembre 2021
2 918
Il faut faire un put() une première fois pour mettre l'identifiant dans la session, mais après tu pourrais faire autant de get() que tu veux tant que la session existe.
Tu pourras en particulier y accéder depuis une JSP.

Remarque, il y a trois scopes distincts : la requête, la session, l'application. Si tu affiches une valeur "id" dans la JSP on ira d'abord regarder la requête, puis si elle n'y est pas dans la session, Donc fais attention à ne pas utiliser dans ta requête des valeurs qui auraient le même nom qu'en session, tu ne récupérerais pas la valeur que tu veux...
Messages postés
6
Date d'inscription
mardi 19 août 2014
Statut
Membre
Dernière intervention
25 août 2014

bonjour kx , bon voila ce que j'ai fais, j'ai récupérer l'id depuis une raquette hql ,j'ai fais un cast parse.int , je l'ai stocké dans la session , mais je n'ai pas pu l'afficher dans les pages jsp de mon projet notamment les formulaire , je comprend que je peux le récupérer via un get mais comment je peux l'écrire utilisant les tags struts ??
Messages postés
16439
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
1 décembre 2021
2 918
Bonjour,

De mémoire ça doit être
<s:property value="#session['id']"/>
ou directement
${id}
.
Attention dans le cas
${id}
la valeur est d'abord cherchée dans la requête et la réponse, c'est seulement si elle n'existe pas qu'elle cherchée dans la session, il vaut donc mieux utiliser un nom qui marque clairement que c'est une valeur de session, par exemple
${SESSION_USER_ID}
.
Messages postés
6
Date d'inscription
mardi 19 août 2014
Statut
Membre
Dernière intervention
25 août 2014

Merciiii infiniment sa a marchhéé parfaitement bien , non seulement sa me fais plaisir que sa marche mais maintenant j'ai rajouté une notion en jee que j n 'avais aucune idée comment elle fonctionné ni si sa exister ,vraiment merci :)
Messages postés
88
Date d'inscription
lundi 18 août 2014
Statut
Membre
Dernière intervention
21 mai 2015
5
Salut
tu peut aussi créer un
<input type hidden name=nom_employe value="">
dans le ou les formulaires,tu pourras donc mettre à tout moment le nom de l'employé dans ce champ et l'utiliser partout dans ta page html.
Messages postés
16439
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
1 décembre 2021
2 918
C'est quand même dommage de demander au serveur d'écrire l'id dans chaque formulaire de chaque page html dans le seul but de lui demander de relire cette valeur juste après.
En plus, ce champ même caché est tout à fait modifiable. On pourrait donc sans problème mettre une autre valeur à la place ce qui pourrait faire planter l'application derrière...
Il vaut donc mieux que cet id ne passe pas par le formulaire, mais qu'il soit stocké en session, ça évitera bien des bugs !
Messages postés
6
Date d'inscription
mardi 19 août 2014
Statut
Membre
Dernière intervention
25 août 2014

j'ai essayé de la récupérer mais hélas , elle doit etre passé comme paramaitre dans la fonction ajax comme data pour que je puisse la récupérer en déclenchant l'action
Messages postés
88
Date d'inscription
lundi 18 août 2014
Statut
Membre
Dernière intervention
21 mai 2015
5
tu peut peut t'y prendre autrement avec la variable de session .
généralement, le code ajax est ecris dans la "partie html" de la jsp. mais rien ne t'empeche de le faire dans le partie java (avec out.println() ). ainsi tu vas creer ta fonction ajax dans laquelle tu auras passe une variable de session.

petit exemple:

<%
out.println("<script lang="js">);
out.println("test() { var id="+nom_var"; alert(id);");
<out.println(</script>);
%>


l'idee est de creer la fonction ajax a partir de java. essaye un peu un truc comme cela.
Messages postés
16439
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
1 décembre 2021
2 918 >
Messages postés
88
Date d'inscription
lundi 18 août 2014
Statut
Membre
Dernière intervention
21 mai 2015

Surtout pas de scriptlets (le code entre <%%>) c'est absolument à bannir des jsp. On a inventé les taglibs pour les remplacer, Struts a les siennes et ça marche très bien.

De plus ça ne sert à rien de mettre la variable de session dans la jsp. Si on veut récupérer la valeur on ira la chercher directement dans la session, on a aucun intérêt à faire l'aller retour dans le formulaire et prendre le risque que la valeur soit altérée.