Spring пропонує способи повернення виведення, відмінні від HTML, включно з PDF та електронними таблицями Excel.

Вступ до подання документів

HTML-сторінка не завжди є найкращим способом перегляду користувачем результатів моделювання, а Spring спрощує динамічну генерацію PDF-документа або таблиці Excel на основі даних моделі. Документ є поданням і передається з сервера з належним типом вмісту, щоб (сподіваємося) дозволити клієнтському ПК запустити у відповідь свою електронну таблицю або програму для перегляду PDF.

Щоб використовувати подання Excel, необхідно додати бібліотеку Apache POI до свого classpath. Для створення PDF необхідно додати (бажано) бібліотеку OpenPDF.

За можливістю слід використовувати останні версії основних бібліотек генерації документів. Зокрема, ми рекомендуємо OpenPDF (наприклад, OpenPDF 1.2.12) замість застарілого оригінального iText 2.1.7, оскільки OpenPDF активно підтримується та вносить виправлення важливої вразливості для ненадійного PDF-контенту.

Подання PDF

Просте представлення PDF для списку слів може розширювати org.springframework.web.servlet.view.document.AbstractPdfView та реалізовувати метод buildPdfDocument(), як показано в наступному прикладі :

Java
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));
        }
    }
}
Kotlin
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 з методу обробника.