2010-07-14 9 views
0

Je suis nouveau sur JSP et Servlets.Passer des messages personnalisés de Servlet à une page JSP?

Ce que je veux savoir est le meilleur moyen de transmettre un message personnalisé aux pages Web des clients. Par exemple supposer que j'ai une page web say student.jsp qui a une forme, pour enregistrer un nouvel étudiant à notre application en ligne. Après avoir inséré avec succès tous les champs du formulaire, l'utilisateur soumet le formulaire et les données sont soumises servlet le valide et l'ajoute à notre database.so, maintenant servlet devrait envoyer un message indiquant un insertion réussie des données entrées par l'utilisateur final à l'utilisateur final (dans notre cas student.jsp). Donc, je pourrais transmettre ce type de message à n'importe quelle page Web client. Je ne veux pas passer ce message en tant que chaîne de requête d'URL.

est là ainsi fourmi mieux et sûr de passer ce type de messages ...

Répondre

5

utilisation request.setAttribute("message", yourMessage) puis vers l'avant (request.getRequestDispatcher("targetPage.jsp").forward()) à la page de résultats.

Ensuite, vous pouvez lire le message dans la page cible via JSTL (<c:out value="${message}" />) ou via request.getAttribute(..) (celui-ci est pas préférable - scriptlets doivent être évités en jsp)

Si vous avez vraiment besoin response.sendRedirect(..), vous pouvez placer le message dans la session et supprimez-le après qu'il a été récupéré. Pour cela, vous pouvez avoir une balise personnalisée, de sorte que votre code jsp n'a pas l'air trop «moche».

+0

t Rings pour cette bonne suggestion. mais que se passe-t-il si j'utilise response.sendRedirect au lieu de request.getRequestDispacther. Puis-je utiliser des méthodes d'attribut avec sendRedirect? any Bénéfice spécial Utilisation de méthodes d'attributs ?? Merci Mihir Parekh – Mihir

+0

rediriger fait une autre demande, par conséquent les attributs sont perdus. – Bozho

+0

merci pour votre réponse. Mais pouvez-vous suggérer un moyen d'envoyer un message au client alors que j'utilise response.sendRedirect ?? – Mihir

1

Je pense qu'il ressemble à ceci dans JSTL:

<c:remove var="message" scope="session" />

Je pense aussi que, si « message » est un String Java, il peut être réglé sur la chaîne vide après qu'il a été utilisé comme celui-ci :

<c:set var="message" scope="session" value="" />

en fait, il ressemble également à cela fonctionne si "message" est un tableau de Java Strings: String [] ...

+0

merci pour votre réponse si elle est différente j'ai voté pour vous. – Mihir

Questions connexes