Как добраться до / публичного за пределами WEB-INF при использовании Spring MVC

Я испытываю трудности с загрузкой изображений в общую папку. Общая папка содержит элемент WEB-INF внутри папки Webapp.

попытки вроде this.getClass().getResource("/images/16x16").toString() возвращает исключение нулевого указателя.

я добавил папку с изображениями в качестве ресурса

    <mvc:resources mapping="/images/**" location="/public/images/" />

Есть ли способ достичь этого? спасибо за чтение

1 ответ

Прежде всего, вы не должны учитывать, что папка веб-приложения доступна для записи файла. Приложение может быть развернуто как файл war, и если вы повторно развернете приложение, вы потеряете все загруженные файлы. Храните загруженные файлы в другом месте.

Во-вторых, Class.getResource() загружает ресурсы из пути к классам. Он не загружается из файловой системы или контекста веб-приложения. Class.getResource() будет искать только ресурсы, хранящиеся в классах WEB-INF/, в одном из jar-файлов WEB-INF/lib или в jar-адресе classpath контейнера.

Если вам нужно загрузить что-то из контекста веб-приложения (чего в этом случае не следует делать), используйте ServletContext.getResource () (или getResourceAsStream())

Другие вопросы по тегам