使用 p:media 或 p:documentViewer 和 p:dialog 动态
use p:media or p:documentViewer with p:dialog dynamic
首先你应该知道我是使用jsf开发web应用程序的新手,所以如果我问的不好的地方请指正。
我需要开发一个 table 来显示一个 pdf 文件的描述和一个在对话框中显示它的按钮,(重要的是应该不能下载、复制或打印这个文件)。我用尽了我所有的可能性,但是当显示对话框时,没有显示文档,这是我的代码:
<h:body> <ui:composition template="/template/plantilla.xhtml"> <ui:define name="content">
<h:form id="frmpdf">
<div align="center"><h:outputText value="Docs .PDF" style="font-weight: bold;"/>
</div> <p:dataTable id="dtdpdf"
var="dpdf"
value="#{documentosPdfBean.listdocpdf}" >
<p:column headerText="Descrip" style="width: 90%;">
<h:outputText value="#{dpdf.sgTfd_descripcion}" />
</p:column>
<p:column headerText="Open">
<p:commandButton value="open"
oncomplete="PF('dlg3').show();"
update="frmpdf:dlgpdf" />
</p:column>
</p:dataTable> <p:dialog id="dlgpdf" header="document" widgetVar="dlg3" showEffect="explode" height="100" dynamic="true">
<p:media value="/resources/document/manual.pdf" width="100%" height="300px"/>
</p:dialog>
</h:form>
</ui:define>
</ui:composition>
</h:body>
我也用过:
<p:commandLink title="manual" onclick="PF('dlg3').show()" />
result
以上开发就是考虑到这个post
经过更多研究后,我设法用标签解决了我的问题
允许在触发此事件时从 bean 建立一个值,我将代码与解决方案一起保留:
<f:view>
<h:head>
<title>Page</title>
<script type="text/javascript" src="/js/keyboard.js" charset="UTF-8"></script>
<link rel="stylesheet" type="/text/css" href="/js/keyboard.css" />
</h:head>
<h:body>
<ui:composition template="/template/plantilla.xhtml">
<ui:define name="content">
<h:form id="frmpdf">
<f:event listener="#{documentPdfBean.onPrerender}" type="preRenderView" />
<div align="center">
<h:outputText value="Docs. PDF" style="font-weight: bold;" />
</div>
<p:dataTable id="dtdpdf" var="dpdf" value="#{documentPdfBean.listdocpdf}" >
<p:column headerText="Descrip" style="width: 90%;">
<h:outputText value="#{dpdf.sgTfd_descripcion}" />
</p:column>
<p:column headerText="open">
<p:commandLink styleClass="fa fa-file-pdf-o" onclick="PF('dlgpdf').show()"
update="frmpdf:pdfvisualizer" style="width: 10px; font-size: 20px; margin-left: 24%;">
<f:setPropertyActionListener target="#{documentPdfBean.ruta}" value="#{dpdf.sgTfd_valor}" />
</p:commandLink>
</p:column>
</p:dataTable>
<p:dialog widgetVar="dlgpdf" height="700" width="750" header="pdf" maximizable="true" minimizable="true"
resizable="false" dynamic="true" showEffect="clip">
<pe:documentViewer height="700" id="pdfvisualizer" value="#{documentPdfBean.ruta}" />
</p:dialog>
</h:form>
</ui:define>
</ui:composition>
</h:body> </f:view>
豆子
private String ruta;
public String getRuta() {
return ruta;
}
public void setRuta(String ruta) {
this.ruta = ruta;
}
首先你应该知道我是使用jsf开发web应用程序的新手,所以如果我问的不好的地方请指正。
我需要开发一个 table 来显示一个 pdf 文件的描述和一个在对话框中显示它的按钮,(重要的是应该不能下载、复制或打印这个文件)。我用尽了我所有的可能性,但是当显示对话框时,没有显示文档,这是我的代码:
<h:body> <ui:composition template="/template/plantilla.xhtml"> <ui:define name="content">
<h:form id="frmpdf">
<div align="center"><h:outputText value="Docs .PDF" style="font-weight: bold;"/>
</div> <p:dataTable id="dtdpdf"
var="dpdf"
value="#{documentosPdfBean.listdocpdf}" >
<p:column headerText="Descrip" style="width: 90%;">
<h:outputText value="#{dpdf.sgTfd_descripcion}" />
</p:column>
<p:column headerText="Open">
<p:commandButton value="open"
oncomplete="PF('dlg3').show();"
update="frmpdf:dlgpdf" />
</p:column>
</p:dataTable> <p:dialog id="dlgpdf" header="document" widgetVar="dlg3" showEffect="explode" height="100" dynamic="true">
<p:media value="/resources/document/manual.pdf" width="100%" height="300px"/>
</p:dialog>
</h:form>
</ui:define>
</ui:composition>
</h:body>
我也用过:
<p:commandLink title="manual" onclick="PF('dlg3').show()" />
result
以上开发就是考虑到这个post
经过更多研究后,我设法用标签解决了我的问题 允许在触发此事件时从 bean 建立一个值,我将代码与解决方案一起保留:
<f:view>
<h:head>
<title>Page</title>
<script type="text/javascript" src="/js/keyboard.js" charset="UTF-8"></script>
<link rel="stylesheet" type="/text/css" href="/js/keyboard.css" />
</h:head>
<h:body>
<ui:composition template="/template/plantilla.xhtml">
<ui:define name="content">
<h:form id="frmpdf">
<f:event listener="#{documentPdfBean.onPrerender}" type="preRenderView" />
<div align="center">
<h:outputText value="Docs. PDF" style="font-weight: bold;" />
</div>
<p:dataTable id="dtdpdf" var="dpdf" value="#{documentPdfBean.listdocpdf}" >
<p:column headerText="Descrip" style="width: 90%;">
<h:outputText value="#{dpdf.sgTfd_descripcion}" />
</p:column>
<p:column headerText="open">
<p:commandLink styleClass="fa fa-file-pdf-o" onclick="PF('dlgpdf').show()"
update="frmpdf:pdfvisualizer" style="width: 10px; font-size: 20px; margin-left: 24%;">
<f:setPropertyActionListener target="#{documentPdfBean.ruta}" value="#{dpdf.sgTfd_valor}" />
</p:commandLink>
</p:column>
</p:dataTable>
<p:dialog widgetVar="dlgpdf" height="700" width="750" header="pdf" maximizable="true" minimizable="true"
resizable="false" dynamic="true" showEffect="clip">
<pe:documentViewer height="700" id="pdfvisualizer" value="#{documentPdfBean.ruta}" />
</p:dialog>
</h:form>
</ui:define>
</ui:composition>
</h:body> </f:view>
豆子
private String ruta;
public String getRuta() {
return ruta;
}
public void setRuta(String ruta) {
this.ruta = ruta;
}