2010-03-22 2 views

Répondre

1

Vous pouvez d'abord obtenir le code source html avec javascript. Ensuite, vous pouvez stocker cette source dans un champ masqué et l'envoyer lorsque l'utilisateur clique sur un bouton d'envoi. Si vous voulez le faire au chargement de la page envoyez la source avec ajax.

Pour vous assurer que vous obtenez la source html complète assurez-vous de l'avoir jusqu'à ce que la page est chargée.

2

Si la demande est idempotent (telles que les demandes sont GET), puis il suffit d'utiliser java.net.URL pour obtenir une InputStream de la sortie JSP. Par exemple.

InputStream input = new URL("http://example.com/context/page.jsp").openStream(); 

Si la demande n'est pas idempotente (comme POST demandes sont), vous devez créer un Filter qui wraps la ServletResponse avec une implémentation personnalisée du PrintWriter avec les cinq write() méthodes été réinitialisée dans laquelle vous copiez sortie dans un tampon/constructeur que vous stockez dans la session ou dans un dossier temporaire au niveau du système de fichiers du disque local afin qu'il puisse être accédé par la suite dans les demandes suivantes. Un exemple de code peut être trouvé dans la réponse que j'ai posté avant here.

Pour l'envoyer par e-mail, utilisez JavaMail API ou le Apache Commons Email plus convivial. Des exemples de code peuvent être trouvés dans leur documentation/guide/FAQ.

Si vous souhaitez d'abord convertir le code HTML au format PDF, jetez un coup d'œil à XhtmlRenderer. Exemple de code peut être trouvé here.

Questions connexes