2009-02-27 8 views
2

Existe-t-il un mécanisme intégré dans Spring qui me permet d'afficher un PDF rendu en externe en vue?Ressort MVC avec un PDF rendu en externe comme vue

Je récupère un fichier PDF via un service web (renvoyé un DataHandler attaché) donc je ne cherche pas à sous-classer AbstractPdfView pour rendre le PDF.

Ce n'est pas un problème difficile à résoudre seul; il serait assez facile d'écrire le PDF dans le ServletOutputStream. Cependant, par souci de cohérence, je voudrais rester avec les classes de contrôleur Spring qui renvoient un ModelAndView, ce qui signifie écrire ma propre sous-classe de AbstractView pour simplement écrire le PDF dans un ServletOutputStream. Ce n'est pas une grosse affaire, mais je ne veux pas recréer quelque chose qui pourrait déjà exister ailleurs au printemps.

Répondre

2

Vous avez donc le PDF en tant que flux (octet), et vous voulez l'écrire dans la réponse? Ce n'est pas le cas lorsque vous avez un ModelAndView et que vous voulez qu'un fichier PDF soit généré avec les données du modèle.

Dans ce cas, je ne vois pas quelle autre option vous avez en plus de l'écrire dans le flux de réponse. Quelles sont les actions que tout code réutilisable pourrait faire en dehors de cela? Il semble que votre logique soit aussi simple que «prenez ce flux et écrivez-le dans le flux de sortie».

+0

Et de définir le type MIME à "application/pdf", bien sûr. – duffymo

+0

J'ai édité ma question pour être un peu plus clair quant à ce que je pense. Merci pour votre réponse. – Ickster

+0

Je ne pense pas que quelque chose comme ça existe déjà - je ne pense pas avoir le fichier PDF complet comme un bytestream est un scénario commun. Cependant créer votre propre classe réutilisable pour gérer ceci est une très bonne idée. –