Если у кого-то будет такая же проблема в будущем, вот решение:
Атрибут content
, который я вставил в value
, - это объект, который содержит двоичные данные изображения.Поскольку он сериализован в URL, его длина слишком велика, и он не работает.Вы должны передать немного id
и получить объект в методе рисования.
Example
<rich:dataTable value="#{dataProviderBean.aoRequests}" var="item">
<f:facet name="noData">No messages are available.</f:facet>
...
<rich:column>
<f:facet name="header">Image data</f:facet>
<rich:list value="#{item.imageContents}" var="content">
<a4j:mediaOutput element="img" cacheable="false" session="false"
createContent="#{imageBean.paint}" value="#{content.id}" />
</rich:list>
</rich:column>
</rich:dataTable>
BEAN
public void paint(OutputStream os, Object data) throws IOException {
String id = (String) data;
BinaryContent content = (BinaryContent) getContentById(id);
os.write(content.getContent());
}