Как добраться до / публичного за пределами 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()
)