a4j: mediaOutput не рендерит PDF
У меня есть задача отображения PDF, извлеченного из базы данных, в виде всплывающего окна в моем приложении JSF при нажатии на ссылку. Однако моя модальная панель не отображает PDF. Вместо этого я получаю маленькую темно-серую коробку в левом верхнем углу панели.
Вот мой код XHTML:
<rich:column styleClass="viewUserTable">
<f:facet name="header">
<h:outputText value="Pdf" />
</f:facet>
<h:outputLink value="#" id="link" style="color:blue;margin: 0 auto;">
Proof
<rich:componentControl for="panel" attachTo="link"
operation="show" event="onclick" />
</h:outputLink>
<rich:modalPanel id="panel" width="350" height="100">
<f:facet name="header">
<h:outputText value="PDF"></h:outputText>
</f:facet>
<a4j:mediaOutput element="object" mimeType="application/pdf"
id="media" session="false" createContent="#{getMyBean.showPdf}"
value="1" style="width:800px; height:600px;" cacheable="false"
standby="loading...">
</a4j:mediaOutput>
</rich:modalPanel>
Вот метод, который я вызываю в своем бине для создания контента для<a4j:mediaOutput>
.
public void showPdf(OutputStream stream, Object object) throws SQLException, IOException {
Blob proof= myObject.getPdf(someValue);//DB call to get the pdf
InputStream inStream = proof.getBinaryStream();
int length = -1;
byte[] buffer = new byte[4096];
while ((length = inStream.read(buffer)) != -1) {
stream.write(buffer, 0, length);
}
}
Я не уверен в значенииvalue
атрибут в<a4j:mediaOutput>
но я нашел пример в интернете, где схожий контент извлекался из БД, и значение было установлено как 1. Я использую RichFaces 3.3.