Создайте изображение и отобразите его внутри JSP вместе с другим контентом - PullRequest
0 голосов
/ 29 марта 2012

Я использую JFreeChart для генерации динамического графика в зависимости от ввода пользователя. У меня есть JSP с некоторым текстовым полем и комбинированным списком, пользователь делает ввод и отправляет его, а действие обрабатывает его, генерируя изображение диаграммы. Мне нужно отобразить это изображение на том же JSP, что и раньше, под надписью / выпадающим списком.

Если я использую response.setContentType("image/jpeg"); и т.д ..., тогда я получаю страницу с одним изображением. Я думал о том, чтобы сохранить изображение в файл и затем получить к нему доступ с помощью <img >, но я не уверен, что это сработает (нужно сохранить его в WebContent, и я не всегда смогу получить к нему доступ?).

Есть ли способ как-то кэшировать изображение и затем обращаться к нему внутри JSP через <img> или что-то еще? Может быть, у JFreeChart есть простой способ сделать то, что я хочу?

Если это имеет значение, я также использую распорки и пружину в своем веб-приложении.

Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 30 марта 2012

Я не пробовал, но вы можете посмотреть org.jfree.chart.imagemap и подходящий генератор URL из org.jfree.chart.urls. Схема реализации PieURLGenerator показана здесь .

0 голосов
/ 29 марта 2012

У вас должен быть сервлет, который может создать изображение, которое вы хотите исключительно из URL.URL может затем содержать идентификатор, который сопоставляется с объектом в вашей программе, содержащим необработанные данные в памяти.Затем сервлет генерирует изображение и возвращает его.

Затем вы можете просто установить URL изображения на вашей текущей веб-странице в Javascript, и он должен быть загружен.

Это потому, что JSPориентированы на символы и плохо поддаются бинарным данным, поэтому вам нужен сервлет.

0 голосов
/ 29 марта 2012

Что ж, если вы генерируете изображение на стороне сервера, вы всегда можете просто сохранить его во временном каталоге, используя что-то вроде UUID , чтобы сгенерировать уникальное имя для него и объединить расширение файла изображенияв конце.

Убедитесь, что каталог, сгенерированный изображением, доступен на веб-сервере, а затем отправьте URL-путь к файлу изображения на сервере обратно в JSP с помощью ajax (Direct Web Remoting ), для отображения с использованием Javascript.

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

...