Отображение изображения базы данных MVC весна
-
22-07-2019 - |
Вопрос
В контексте приложения MVC (в данном случае с использованием Spring MVC), учитывая, что у меня есть некоторые пути к изображениям, хранящиеся в БД.Как я могу отобразить их в представлении?
Задача контроллеров - загрузить их, а затем передать в представление?Если да, то как это делается в Spring MVC с использованием JSP?
Спасибо
Решение
Возможно, задачей контроллера является передача их в представление как часть модели, но я думаю, что задача уровня сервиса заключается в получении изображения.
ОБНОВЛЯТЬ:Юреген Хеллер показывает, как это сделать с помощью аннотированных контроллеров. здесь.
Другие советы
Это действительно зависит от того, как получаются реальные изображения и для чего они используются.
Например, если вы создаете веб-сайт для обмена фотографиями, где изображения являются первоклассными гражданами, я полностью согласен с ДаффимоОтвет - они должны быть загружены сервисным уровнем и быть частью модели.
С другой стороны, если рассматриваемые изображения носят чисто презентационный характер и доступны как общедоступные изображения в вашем веб-приложении (например, вы можете отображать статус какого-либо процесса как красный/желтый/зеленый свет), вы можете визуализировать их. прямо на виду.Конечно, в этом сценарии довольно странно хранить реальные пути к изображениям в базе данных — я бы предпочел вместо этого представить, что путь к изображению будет храниться где-то в пакете ресурсов.
Используя последний подход, предположительно, имеющиеся у вас пути к изображениям относятся к некоторой «базовой» папке, а полный путь к изображению будет выглядеть примерно так: ${prefix}/${base}/${imagePath}
:
prefix
, в зависимости от вашей конфигурации развертывания, может быть либо явно указано где-то в конфигурации (например, если у вас есть выделенный сервер изображений), ИЛИ быть таким простым, как/context
гдеcontext
это путь, по которому развертывается ваше веб-приложение (если все обслуживается с одного простого сервера, без балансировки нагрузки и т. д.)base
будет взято из конфигурации (или может быть пустым)imagePath
это то, что вы получаете от модели
При использовании описанного выше подхода рендеринг пути изображения непосредственно через JSP должен быть тривиальным.