2011-02-01 42 views
10

Tôi có một số dữ liệu trong DB và muốn có thể xuất dữ liệu sang tệp CSV và cung cấp liên kết để người dùng có thể tải xuống.Mùa xuân 3 - xuất dữ liệu ở định dạng csv

Có cơ chế nào được cung cấp bởi Spring 3 cho việc này không?

Bạn có biết làm cách nào để tôi làm điều đó không?

+0

Mùa xuân không cung cấp hỗ trợ CSV. Có rất nhiều thư viện CSV cho Java, mặc dù (chỉ cần tìm kiếm "java csv"). – skaffman

Trả lời

18

Tôi đoán việc xây dựng CSV hoặc bất kỳ chế độ xem tệp văn bản nào cũng dễ dàng. bước Dưới đây là gợi ý:

  1. Tạo một lớp View (bạn có thể đặt tên cho nó là CSVView) mở rộng org.springframework.web.servlet.view.AbstractView

  2. Override renderMergedOutputModel như sau (pseudo code):

BufferedWriter writer = new BufferedWriter(response.getWriter())

response.setHeader("Content-Disposition","attachment; filename=\"file.csv\"");

myDbData = (Whatever) modelMap.get("modelKey");

some kind of loop {writer.write(myDbData csv row); writer.newLine(); }

finally writer.flush(); writer.close();

Sau đó chỉ trả ModelAndView với mô hình (object Whatever với modelKey) và xem như CSVView trong bộ điều khiển.

+0

cảm ơn bạn rất nhiều, nó đã hoạt động! – tsunade21

+0

Cảm ơn. Bạn đã cứu ngày của tôi. :) – Garbage

+2

một giải pháp thay thế có thể được tìm thấy http://stackoverflow.com/questions/9913732/configuring-spring-mvc-controller-to-send-file-to-client, nhưng đó là một vấn đề của hương vị. –

Các vấn đề liên quan