2011-06-22 4 views
0

ALL!Importation de données depuis un fichier JSP (format CSV) dans Excel avec Spring framework

J'ai une question liée à Spring, JSP. Je génère un fichier JSP avec des données de la base de données et je veux l'importer dans Excel. Je sais réellement comment le faire en utilisant des contrôleurs ou en fournissant simplement du code Java dans le fichier JSP lui-même. (Résumé (J) ExcelView). Mais ma question est de savoir si je peux le faire sans code java explicite dans JSP lui-même, en utilisant uniquement des balises personnalisées. Donc, tout sera fait seulement avec l'aide d'un .jsp et de quelques fichiers de configuration xml. Des conseils sur l'écriture propre taglib sont les bienvenus.

Merci! J'apprécierai vraiment votre aide!

Cordialement, Nigar.

Répondre

0

Était-ce facile à la fin. voici un taglib. placé à WEB_INF/tags dossier

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ attribute name="contentType" required="true" type="java.lang.String" %> 
<%@ attribute name="file" required="true" type="java.lang.String" %> 


<% response.setHeader("Content-disposition",file); 
response.setHeader("Content-type",contentType);%> 

et c'est le fichier jsp:

<%@ taglib prefix="tg" tagdir="/WEB-INF/tags" %>  
<tg:excel contentType="application/vnd.ms-excel" file="attachment;filename=mf.xls" /> 

bâtiment de table html après simple avec des données;)

0

Vous pouvez le faire comme écrire html normal:

<c:foreach var="row" items="${table}"> 
    <c:out value="${row[0]}">;<c:out value="${row[1]}">;<c:out value="${row[2]}">; 
</c:foreach> 

Alors la seule chose que vous devez régler correctement l'est l'en-tête de réponse HTTP.

Attention: cela ne fonctionne pas avec JSPX - car JSPX supprimera les espacements (les sauts de ligne)

Quoi qu'il en soit: Je ne recommande pas de cette façon.

+0

Soit je ne comprends pas ici lissée (désolé dans ce cas , je ne suis pas vraiment bon au printemps), ou je me suis trompé. J'ai besoin d'écrire ces données de jsp (que j'ai déjà imprimées sur le jsp comme vous l'avez écrit) à Excel. response.reset(); response.setHeader ("Content-type", "application/xls"); response.setHeader ("Content-disposition", "inline; nom_fichier = nombre.csv"); Comment faire la même chose sans code java? J'ai une mission de faire la même chose, mais en utilisant seulement des balises. totalement coincé dessus. Merci pour une réponse! – Nigul

+0

@Nigul: désolé maintenant la question est propre. Je suppose qu'il n'est pas possible de définir l'en-tête à l'intérieur d'un fichier jsp sans Java, sauf lorsque vous écrivez votre propre balise, puis utilisez cette balise. - Mais (permettez-moi de poser cette question) pourquoi voulez-vous faire cela? N'est-il pas beaucoup plus facile de faire ce tout (contenu CSV et en-tête) le contrôleur Spring MVC? – Ralph

+0

Je sais que c'est. Et je peux le faire de cette façon, pas de problème;) c'est une mission pour mon cours. Je ne suis pas vraiment demandé comment je veux le faire, il suffit de le mettre en œuvre. J'ai supposé que je pourrais avoir besoin de mon propre tag: S cause après une recherche sur internet pendant quelques jours, rien obtenu .. donc, le temps de commencer à apprendre à écrire des balises: D merci quand même! – Nigul

Questions connexes