내 Oracle 데이터베이스에 blob
으로 저장된 PDF 파일을보고 싶습니다. xhml
에 <p:media/>
을 사용하고 있고, 뒷받침 빈에 StreamedContent
을 사용하고 있습니다. 여기Primfaces에서 p : media를 사용하여 Pdf 표시
는 xhtml
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:p="http://primefaces.org/ui">
<p:outputPanel id="outputPanelDialogShowPdf">
<div style="text-align: center">
<p:media value="#{bean.media}" width="600px" height="300px" player="pdf" />
</div>
<p:spacer height="1px" />
<div style="text-align: center">
<p:commandButton value="#{msgs.button_cancel}" icon="ui-icon-cancel" oncomplete="dialogShowPdf.hide();"
action="#{bean[cancelAction]}" immediate="true" />
</div>
</p:outputPanel>
입니다 그리고 여기에 액션 콩
<p:commandButton value="Show PDF"
update=":formMediaDataDialogShowPdf:outputPanelDialogShowPdf"
oncomplete="PF('dialogShowPdf').show()"
action="#{ bean.showPdfAction }" rendered="#{ mediaData.mediaType == 'application/pdf'}">
<f:setPropertyActionListener value="#{mediaData}" target="#{bean.selectedMediaData}" />
</p:commandButton>
에게 호출 (데이터 테이블의 일부) 액션 버튼입니다 그리고 이것은의 작업입니다 콩
public void showPdfAction(){
if (null != selectedMediaData) {
media = new DefaultStreamedContent(new ByteArrayInputStream(selectedMediaData.getMediaData()),"application/pdf");
}
}
문제는 빈의 작업이 오류없이 실행되고 빈의 media
속성이 제대로 초기화되어 있어도 미디어가 표시되지 않는 것입니다.
사람이 연구의 몇 시간 후 그
@kukeltje 코드를 지연시키는 생각이 있습니까? –
예, 읽어 봤지만, 제가 묻는 것과 관련이 있습니까? 그냥 물어 보는 건데. –
Thanks @Kukeltje .. 질문을 업데이트했습니다. –