cs_anri
Messages postés9Date d'inscriptionmardi 6 octobre 2009StatutMembreDernière intervention14 octobre 2009
-
6 oct. 2009 à 09:11
cs_anri
Messages postés9Date d'inscriptionmardi 6 octobre 2009StatutMembreDernière intervention14 octobre 2009
-
6 oct. 2009 à 14:13
Bonjour.
JE récupère dans une JSP un UserName (via un formulaire) que je mets dans une variable.
J'aimerai envoyer cette variable à une classe Java.
Je n'y arrive pas.
Voici les différents scripts
Classe Java
package com.pikeo.back.modules.picture;
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 6 oct. 2009 à 14:09
Salut,
C'est juste récupèrer le nom user à partir de la valeur ${user} contenu dans l'attribut username de ton tag
______________________________________
DarK Sidious
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 6 oct. 2009 à 09:42
Salut,
Je ne sais pas trop ce que tu cherche à faire, mais je pense que c'est un problème de compréhension du fonctionnement d'une jsp :
Une jsp est interprêtée et compilée en une classe java au niveau du serveur, AVANT d'envoyer le contenu HTML résultant de l'exécution de cette classe java au navigateur Web.
Donc, tu ne peux pas savoir le nom de l'utilisateur AVANT qu'il ne l'ai saisi...
Il n'y a pas d'interraction possible entre les action javascripts niveau client et les classes java niveau serveur. Il faut forcément que tu envoi une requête au serveur pour lui notifier de ce qu'à saisit l'utilisateur afin de remplir la classe que tu veux (ici en plus, il s'agit d'un tagLib apparement, tu auras alors encore plus de mal à renseigner la propriété userName vu qu'un taglib n'est pas lié à une session et est GLOBAL à toutes ton application, et donc, à tout les utilisateurs !)
Bref, je te conseille vivement de lire un tutorial sur J2EE et les interractions client-serveurs dans la programmation web avant de te lancer dans un tel développement car là tu va droit dans le mur... Et tu verras que c'est loin d'être aussi simple que ce que tu as pu imaginer en faisant un tagLib qui stocke un username comme cà...
______________________________________
DarK Sidious
cs_anri
Messages postés9Date d'inscriptionmardi 6 octobre 2009StatutMembreDernière intervention14 octobre 2009 6 oct. 2009 à 09:51
Merci de ta réponse.
J'avais compris en gros ce que tu m'indiques sur le fonctionnement d'une JSP.
En fait, le formulaire javascript n'est là que pour recueillir une entrée utilisateur : le userName.
Cette valeur est stockée dans une variable jstl/core : <c:set scope="session" var="user" value="${param.userName}" />
Je m'assure que la variable "user" a bien ete initialisée : <c:out value="user : ${user}" /> (Ca fonctionne).
En fait ce qui ne fonctionne pas, c'est lorsque j'essaie d'instancier la classe java en lui passant la variable "user" comme ceci :
<tag:profile userName="${user}"></tag:profile>
Si par contre je lui envoie une valeur comme cela : <tag:profile userName="toto"></tag:profile>, cela fonctionne !
???
Merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 6 oct. 2009 à 09:56
Salut,
Ok je vois ce que tu veux dire maintenant.
En fait, le problème vient sûrement (je pense) de la valeur que tu lui passes : si tu mets un point d'arrêt dans ton TagLib, tu dois obtenir en valeur du paramètre userName ${user} et non la valeur du user. C'est à toi de récupèrer la valeur de la variable user dans ta session HTTP : la jsp ne doit pas interprêter le ${user} pour le remplacer par la valeur qu'il contient je pense.
______________________________________
DarK Sidious
cs_anri
Messages postés9Date d'inscriptionmardi 6 octobre 2009StatutMembreDernière intervention14 octobre 2009 6 oct. 2009 à 13:38
Tu as une solution ?
J'ai essayé dans tous les sens de récupérer dans le script JAVA la valeur de la variable intialisée dans le JSP main n'y arrive pas.
Suis allée dans la doc que tu m'as proposée et récupère la session ou le nom de la JSP "pageContext.getOut().print( pageContext.getPage());"
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 6 oct. 2009 à 13:43
Salut,
Ton code t'affiche l'adresse mémoire, logique !
Il te faut récupèrer la valeur de ta variable et non toutes la liste des attributs de session, ca doit donner un truc du genre :
pageContext.getOut().print(pageContext.getSession().getAttribute("user").toString());
Je te laisse récupèrer dynamiquement le nom de l'attribut (user) à partir de la valeur de l'attribut du tag.
______________________________________
DarK Sidious
cs_anri
Messages postés9Date d'inscriptionmardi 6 octobre 2009StatutMembreDernière intervention14 octobre 2009 6 oct. 2009 à 13:55
Génial, ça fonctionne.
Qu'est-ce que tu appelles "récupèrer dynamiquement le nom de l'attribut (user) à partir de la valeur de l'attribut du tag".
En fait je me sers de la valeur de userName pour rechercher dynamiquement le profil d'un utilisateur, profil que je sauvegarderai dans le contexte par la phrase "pageContext.setAttribute(var,valeur);"