Comment avoir une variables sur tout les formulaire

Résolu/Fermé
salahsalah3 Messages postés 6 Date d'inscription mardi 19 août 2014 Statut Membre Dernière intervention 25 août 2014 - 19 août 2014 à 16:20
salahsalah3 Messages postés 6 Date d'inscription mardi 19 août 2014 Statut Membre Dernière intervention 25 août 2014 - 25 août 2014 à 02:26
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

KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
19 août 2014 à 18:21
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.
0
salahsalah3 Messages postés 6 Date d'inscription mardi 19 août 2014 Statut Membre Dernière intervention 25 août 2014
Modifié par salahsalah3 le 20/08/2014 à 21:04
c totalement se que je pensais moi aussi par ce que j'ai deja fais une application pareil en php stockant la variable id_employer dans une session , se qui fais que c'etais mon premier reflex, mais en jee j savais pas comment le faire , je travaille avec struts2 et hibernate , esque tu pourrais stppp me faire un tout petit exemple et vraiment merci pour ta réponse :)
0
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
20 août 2014 à 21:17
Avec Struts2 tu devrais utiliser la classe ActionContext.

import com.opensymphony.xwork2.ActionContext;

ActionContext context = ActionContext.getContext();

Map<String,Object> session = context.getSession();
Integer id = 42;
session.put("id", id);
id = (Integer) session.get("id");
0
salahsalah3 Messages postés 6 Date d'inscription mardi 19 août 2014 Statut Membre Dernière intervention 25 août 2014
21 août 2014 à 03:30
donc maintenant je pourrais récupérer l'id dans n'importe quel page jsp de mon projet ???
0
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
21 août 2014 à 07:54
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...
0
salahsalah3 Messages postés 6 Date d'inscription mardi 19 août 2014 Statut Membre Dernière intervention 25 août 2014
24 août 2014 à 11:25
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 ??
0
yamdjio Messages postés 90 Date d'inscription lundi 18 août 2014 Statut Membre Dernière intervention 21 mai 2015 5
20 août 2014 à 14:50
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.
-1
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
20 août 2014 à 18:54
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 !
0
salahsalah3 Messages postés 6 Date d'inscription mardi 19 août 2014 Statut Membre Dernière intervention 25 août 2014
20 août 2014 à 21:05
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
0
yamdjio Messages postés 90 Date d'inscription lundi 18 août 2014 Statut Membre Dernière intervention 21 mai 2015 5
22 août 2014 à 12:54
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.
0
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020 > yamdjio Messages postés 90 Date d'inscription lundi 18 août 2014 Statut Membre Dernière intervention 21 mai 2015
Modifié par KX le 22/08/2014 à 19:49
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.
0