La configuration jsp servlet de base Je connais ....Générer HTML à partir de JSP
RequestDispatcher dispatcher = request.getRequestDispatcher(resourceA.jsp);
dispatcher.forward(request, response);
Le problème est, en plus d'envoyer la réponse au navigateur (resourceA.jsp), j'ai besoin pour créer une deuxième sortie HTML de resourceB.jsp, qui à son tour sera envoyé par courrier électronique ou utilisé pour créer un document PDF.
Cela ne se fait pas à chaque fois, seulement dans des conditions précises et en appelant
dispatcher.forward(request, response);
la deuxième fois que je reçois et IllegalArgumentException.
J'ai juste besoin d'une manière à générer HTML à partir jsp (remplaçant essentiellement le $ {par} valeurs) et retourner le code html sous forme de chaîne, pas de code d'état ou les en-têtes, juste html et A ont rien à voir avec B , donc les filtres ne fonctionneront pas.
------ rejeu à première réponse ----- --- commentaire à petit pas de formatage
Je ne vois pas pourquoi cela est si difficaled ....
tout là pour de magnésium est de fusionner des données avec un contenu HTML dans le
${par}
${par['key']}
<c:if test="${patBoolean}" >
<c:forEach var="pvar" varStatus="s_pvar" items="${parList}">
J'ai même créé un emballage pour masquer getOutputStream() et getWriter(), créer ma propre PrintWriter
public class ResponseWrapper extends HttpServletResponseWrapper{
private PrintWriter printWriter;
public ResponseWrapper(HttpServletResponse response){
super(response);
}
public ServletOutputStream getOutputStream() throws java.io.IOException{....}
public PrintWriter getWriter() throws java.io.IOException {....}
}
à obtenir le résultat de l'resourceB.jsp, mais le problème est dispatcher.forward (demande, réponse) ensembles isCommitted certains articles dans la HttpServletResponse originale.
Utilisez-vous la deuxième page JSP pour créer un fichier PDF ou envoyer un courrier électronique à partir du client ou du serveur? Si vous essayez de le faire à partir du serveur, je dois admettre que les JSP ne sont pas la bonne solution, un moteur de templates serait mieux adapté à cette tâche. –
Je viens de jeter un coup d'œil à Velocity ... regarde le code: #foreach ($ critère dans $ criteria) .... ça imite les jsp, j'ai besoin d'apprendre une autre méthode de script avec des pages séparées, pas de re utilisation de code ... c'est tellement simple jsp, attribut, html ... Je le fais déjà et il fonctionne pour le courrier électronique et PDF, mais le second expéditeur.forward revenir au navigateur, est maintenant le seul problème. ... il doit y avoir loin et OUI je le fais du coté du SERVEUR – nico
Je pense que vous devez regarder deux requêtes HTTP au lieu d'une, surtout si vous avez réussi à faire fonctionner la partie email/PDF. Il n'y a simplement aucun moyen pour un serveur de répondre avec deux types de contenu différents, pour la même requête. Cela pourrait aussi vous aider si vous pouvez élaborer votre cas d'utilisation, car il est un peu difficile de comprendre qu'un email est généré par le serveur et envoyé au client. –