I, comme vous, ont commencé avec les classes d'aide de printemps pour JasperReports mais rapidement abandonnés comme étant trop gros grain et inflexible, ce qui est inhabituel pour le printemps. C'est comme s'ils avaient été ajoutés après coup.
Le gros problème que j'ai eu avec eux était qu'une fois compilés, il fallait un rebond de serveur d'applications pour mettre de nouvelles versions. Dans mon cas, je recherchais une solution permettant de les modifier sur disque et de les recompiler, un peu comme les JSP fonctionnent normalement (si vous ne désactivez pas cette fonctionnalité, ce qui serait le cas de nombreux sites de production).
J'ai également souhaité pouvoir stocker les fichiers jrxml dans une base de données ou exécuter les rapports à distance (par exemple via l'interface de services Web JasperServer). Les classes de printemps rendaient tout sauf impossible d'implémenter de telles fonctionnalités. Donc, ma suggestion est la suivante: lancez la vôtre. Il y a quelques trucs en cours de route, que je partagerai avec vous pour minimiser la douleur. Certaines de ces choses ne sont pas évidentes dans la documentation.
La première chose dont vous aurez besoin est un compilateur de rapports jasper. Ceci est responsable de la compilation d'un fichier jrxml dans un objet JasperDesign. Il y a plusieurs implémentations de ceci mais celui que vous voulez est le JRJdtCompiler. Vous pouvez instancier et injecter ceci dans un contexte d'application Spring. Évitez les autres comme le compilateur beanshell car l'exécution du rapport en tant que script de grosse beanshell n'est pas particulièrement rapide ou efficace (j'ai trouvé cela à la dure avant que je ne le sache).
Vous devrez inclure les fichiers jar pour le JRJdtCompiler. Je pense que la version complète de Jasper Reports inclut ce pot. C'est un produit d'éclipse.
Vous pouvez stocker le JasperDesign où vous voulez (HttpSession, contexte de servlet ou autre). La méthode fillReport() est la principale qui vous intéresse. Elle crée un objet JasperPrint, qui est une instance d'un rapport d'exécution. Les paramètres sont simplement transmis en tant que carte.
Maintenant, pour créer un versino en HTML, PDF, etc, vous devez l'exporter. Vous utilisez des classes comme JRHtmlExporter et JRPdfExporter pour le faire. Ils nécessitent certains paramètres. Le plus délicat est l'exportateur HTML car HTML n'inclut évidemment pas les images. Jasper inclut une classe ImageServlet qui récupère ces éléments de la session (là où JRHtmlExporter les a placés) mais vous devez obtenir la configuration de l'exportateur HTML et de la servlet image juste et il est difficile de dire où vous allez mal. Je ne me souviens pas des détails, mais il ya un exemple de tout cela dans le Jasper Reports Definitive Guide, que je vous recommande fortement si vous dépensez à tout moment avec ce produit.C'est assez bon marché à 50 $ US. Vous pourriez aussi obtenir l'abonnement annuel, mais dans les 18 mois et plus que j'ai vus, je n'ai pas vu un seul changement. Il suffit d'acheter la nouvelle version quand elle sortira si vous en avez besoin (ce que vous n'aurez probablement pas).
Espérons que cela aide.