使用p:media或p:documentViewer和p:dialog dynamic

时间:2016-11-18 16:47:35

标签: jsf primefaces dialog mediaelement.js commandbutton

首先你应该知道我是jsf的web应用程序开发的新手,所以如果我要求做坏事,请纠正我。

我需要开发一个表格来显示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

1 个答案:

答案 0 :(得分:0)

经过更多的研究,我设法用标签解决了我的问题  允许在触发此事件时从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>

bean

 private String ruta;

public String getRuta() {
    return ruta;
}

public void setRuta(String ruta) {
    this.ruta = ruta;
}