Spring пропонує способи повернення виведення, відмінні від HTML, включно з PDF та електронними таблицями Excel.
Вступ до подання документів
HTML-сторінка не завжди є найкращим способом перегляду користувачем результатів моделювання, а Spring спрощує динамічну генерацію PDF-документа або таблиці Excel на основі даних моделі. Документ є поданням і передається з сервера з належним типом вмісту, щоб (сподіваємося) дозволити клієнтському ПК запустити у відповідь свою електронну таблицю або програму для перегляду PDF.
Щоб використовувати подання Excel, необхідно додати бібліотеку Apache POI до свого classpath. Для створення PDF необхідно додати (бажано) бібліотеку OpenPDF.
Подання PDF
Просте представлення PDF для списку слів може розширювати org.springframework.web.servlet.view.document.AbstractPdfView
та реалізовувати метод buildPdfDocument()
, як показано в наступному прикладі :
public class PdfWordList extends AbstractPdfView {
protected void buildPdfDocument(Map<String, Object> model, Document doc, PdfWriter writer,
HttpServletRequest request, HttpServletResponse response) throws Exception {
List<String> words = (List<String>) model.get("wordList");
for (String word : words) {
doc.add(new Paragraph(word));
}
}
}
class PdfWordList : AbstractPdfView() {
override fun buildPdfDocument(model: Map<String, Any>, doc: Document, writer: PdfWriter,
request: HttpServletRequest, response: HttpServletResponse) {
val words = model["wordList"] as List<String>
for (word in words) {
doc.add(Paragraph(word))
}
}
}
Контролер може повернути таке подання або із зовнішнього визначення подання (посилаючись на нього за ім'ям), або як
екземпляр View
з методу обробника.
Подання Excel
Починаючи з версії Spring Framework 4.2, org.springframework.web.servlet.view.document.AbstractXlsView
надається як базовий клас для подання Excel. Він базується на Apache POI зі спеціалізованими підкласами
(AbstractXlsxView
та AbstractXlsxStreamingView
), які замінюють застарілий клас AbstractExcelView
.
Модель програмування аналогічна AbstractPdfView
, з buildExcelDocument()
як центральним
шаблонним методом і контролерами, що здатні повертати таке подання із зовнішнього визначення (за ім'ям) або як
екземпляр View
з методу обробника.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ