Java загружает изображение из базы данных как поток байтов и загружает его в xsl
Изображение сохранено в базе данных как поток байтов, я должен загрузить это изображение в xsl. В xsl возможна ли загрузка изображения из базы данных?? Если так, как это можно сделать. В xsl мы использовали для загрузки только статическое изображение, но мне нужно загрузить динамический контент
1 ответ
Предположим, у вас есть какая-то база данных, и вы храните изображение, которое вы можете получить каким-либо образом. Изображение идентифицируется по некоторому идентификатору... как "1234567". Затем предположим, что в вашем XML есть что-то вроде:
<imageid>1234567<imageid>
Вы XSL возьмете эту информацию и сможете:
1) Создайте собственный протокол и обработчик URL-адреса Java и зарегистрируйте его. Затем вы просто используете это в URL для атрибута src объекта fo:external-graphic ... Например, вы создаете и регистрируете собственный протокол "getimage" и обработчик, который возвращает некоторое изображение. Тогда вы можете иметь:
<fo:external-graphic src="getimage://myserver.com/images/1234567"/>
Для примеров кода, просто найдите "Создать свои собственные обработчики URL Java" в Интернете. Это хороший ресурс: http://docstore.mik.ua/orelly/java/exp/ch09_06.htm
2) Создайте сервлет, который возвращает изображение, тогда у вас может быть:
<fo:external-graphic src="http://myserver.com/getimage.jsp?image=1234567"/>
Вы должны решить, как получить изображение из базы данных и вернуть его обратно, установив соответствующую информацию в заголовках, чтобы она распознавалась как рассматриваемый тип изображения.