Bonjour la Famille,
j'ai un soucis la je veux transféré certaines informations d'une page JSP vers une autre page JSP
Merci d'avance
Bonjour la Famille,
j'ai un soucis la je veux transféré certaines informations d'une page JSP vers une autre page JSP
Merci d'avance
Salut,
C'est un peu imprécis comme question. Un fichier JSP est un fichier qui génère une réponse http à une requête http. On ne peut pas la considérer vraiment comme un conteneur de données qui pourraient échanger des données avec autre chose. Mais ce que ça génère, ou ce que ça utilise comme objets pour générer la réponse, peut effectivement avoir des données qu'on peut avoir besoin d'échanger avec un autre contexte (une JSP, une servlet, un service, un BDD, etc).
Il y a quatres possibilités de base :
- soit tu cherches à imbriquer des bouts de jsp, par include (ce n'est pas vraiment du transfert de données, mais on peut avoir besoin d'utiliser des variables ou valeurs créées dans une jsp dans la jsp incluse). Dans ce cas, on peut passer des paramètres par le tag jsp:include par exemple.
- soit tu as une JSP qui génére un contenu html, avec un formulaire dont tu veux récupérer les données saisies dans une autre JSP qui va traiter la saisie. Dans ce cas, le transfert de données ne va se faire entre la JSP qui génère le formulaire et la jsp qui le traite, mais c'est la requête http déclenchée par le formulaire qui va envoyer les données saisies comme paramètres de requêtes qui tu récupéreras dans la JSP de traitement (par request.getParameter( nom de paramètre ))
- soit tu as besoin dans un processus de forward d'une JSP vers une autre de transférer des données de la première vers la seconde. On peut transporter des données comme attribut de requête (avec la méthode request.setAttribute( nom, valeur) et la méthode request.getAttribute( nom ), pour la récupérer.
- soit tu as besoin de maintenir un ensemble de données pour un utilisateur, durant sa session, données qu'on doit pouvoir manipuler dans plusieurs JSP, voire plusieurs fois dans plusieurs requêtes correspondant à une même JSP. Dans ce cas, de la même façon que dans le point précédent, tu as des attributs sur la session, que tu peux affecter pour une requête et récupérer dans une autre, pour la même session.
- soit tu as plusieurs JSP qui utilisent des données en commun (dont l'une produit en quelque sorte ces données, et une autre les consomme) : ici, on procèdera comme pour n'importe quelle application Java, avec des objets en commun (des singletons par exemple), ou tout simplement par des fichiers, des bases de données, ou tout autre système de persistence de données.
Merci au faites j'ai cree une page actualité en cliquant sur lire la suite je me dirige vers une autre page jsp qui va affiche les details donc je veux transmettre ces donnees pour les details
Donc, le transfert d'informations ne se passe pas de JSP en JSP, mais de la page HTML générée par la première JSP, vers le service HTTP correspondant à la seconde. Le concept essentiel à comprendre, c'est que c'est le client (le navigateur) qui va "transférer" les paramètres vers la seconde JSP, donc ce n'est pas la première JSP : les JSP ne concernent que le côté serveur.
Il te faut donc passer des paramètres de requêtes pour résoudre ton problème, exactement comme dans le cas d'un formulaire.
On peut avoir 2 cas :
- On ne connait pas d'avance les informations : c'est l'utilsateur qui va les choisir avant de cliquer sur un lien, un bouton, etc.
Dans ce cas, il faut faire un formulaire (balise html form). Les valeurs saisies par l'utilisateur dans le champ du formulaire seront transmises dans la requête : tu pourras donc les récupérer par la méthode getParameter( nom ) de l'objet request, disponible par défaut dans une JSP (il y a aussi d'autres méthodes, pour avoir tous les paramètres dans une map par exemple, ou pour avoir toutes les valeurs d'un paramètre multivalué. Regarde à ce sujet la doc de la classe HttpServletRequest).
Comme tu veux que ça se déclenche en cliquant sur un lien, ce qui n'est pas le standard supporté par la balise form (qui utilise un bouton submit), il te faudra faire un petit javascript pour simuler le submit au clic sur le lien. C'est un classique dont tu trouveras un exemple en FAQ javascript.- On sait d'avance les paramètres
Là, il y a 2 solutions :
- soit simuler le cas précédent, en générant un formulaire avec des champs invisibles (hidden), ce qui peut être utile si tu veux faire du POST.
- soit écrire directement la requête avec ses paramètres dans le lien href, mais attention à bien penser à les encoder (par exemple, en utilisant la classe URI, avec le constructeur à plusieurs paramètres et la méthdoe toURL()).
Merci frere j'ai pu gerer par ton aide,
j'ai envoye les donnees vers une classe et reccuperer sur une autre JSP
Partager