JSF PDF,Excel vs. dosya indirme,gösterme kodu kullanımı örneği (JSF PDF,Excel etc. file download,view code usage example)

JSF ile PDF, Excel vs. gibi dosyaları indirme ve gösterme yöntemlerinin örneklerini aşağıda inceleyebilirsiniz.

JSF h:commandButton kullanara en temel hali ile PDF,Excel vs. dosyaları için indirme olanağı sunabilirsiniz.

<h:form>      
    <h:commandButton value="PDF İndir" actionListener="#{pdfBean.downloadAsPDF()}" ajax="false" />
</h:form>
public void downloadAsPDF() {
	String pdfFileName = "MyPdfFileName";
	try {
		String responseContentType = "application/pdf";     
	        FacesContext facesContext = FacesContext.getCurrentInstance();
	        ExternalContext externalContext = facesContext.getExternalContext();
	        HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
	        response.reset();
	        response.setContentType(responseContentType);
	        response.setHeader("Content-disposition", "attachment; filename=\"" + pdfFileName + ".pdf\"");
	        
		byte[] bytes = debtService.getDebts("", selectedMyDebt);
		ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length);
		baos.write(bytes, 0, bytes.length);
            
		baos.writeTo(response.getOutputStream());
		response.getOutputStream().close();
		facesContext.getCurrentInstance().responseComplete();
	        
	} catch (Exception e) {
		pdfFileName = e.getMessage();
		response.setHeader("Content-disposition", "attachment; filename=\"" + pdfFileName + ".pdf\"");
		return;
	}
}

JSF PrimeFaces fileDownload etiketi ile PDF,Excel vs. dosyaları için indirme olanağı sunabilirsiniz.

<h:form>
    <p:commandButton value="Download" ajax="false">
        <p:fileDownload value="#{fileDownloadView.file}" />
    </p:commandButton>
</h:form>
	private StreamedContent file;
     
	public FileDownloadView() {        
		InputStream stream = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream("/resources/demo/images/optimus.jpg");
		file = new DefaultStreamedContent(stream, "image/jpg", "downloaded_optimus.jpg");
	}
 
	public StreamedContent getFile() {
		return file;
	}

JSF PrimeFaces media etiketi ile PDF,Excel vs. dosyaları için görüntüleme ve tarayıcı desteğinde sorun olanlar için ise indirme opsiyonunu sunabilirsiniz.

		<p:media value="#{documentBean.contentProgressTripGuide}" 
				player="pdf" width="1050" height="1000px" /> 

	 <p:remoteCommand name="myProgressTripGuideOnload" 
			actionListener="#{documentBean.fillProgressTripGuide()}"
			update=":contentFrm:progressTripGuidePnlGrid"
			autoRun="true"/>

<span>Görüntülemede sorun yaşıyorsanız, dosyayı görüntülemek veya indirmek için aşağıdaki butonu veya bağlantı adresine kullanınız. </span>
	<br />
	<a href="/myapp/mylink.pdf" target="_blank">Dosyayı görüntüle veya indir.</a>
   	
	public StreamedContent fillProgressTripGuide(){

        InputStream inputStream = null;
		try {	
			RID rid = RID.getRID(progressTripGuideKmFileShortPath);
			
			IUser user = UMFactory.getUserFactory().getUserByLogonID("cmadmin_service");
			ResourceContext ctxt = ResourceContext.getInstance(user);
	        IResourceFactory resourceFactory = ResourceFactory.getInstance();
	        
	        IResource resource = resourceFactory.getResource(rid, ctxt);
	        inputStream = resource.getContent().getInputStream();
	       
	        //MyFacesMessage.debugMessage("DocBea::001::" + inputStream.toString());
	        
	        contentProgressTripGuide = new DefaultStreamedContent(inputStream, "application/pdf");
		}catch (Exception e) {
			MyFacesMessage.exceptionMessage("DocBea::conProTriGui::01::" + e.toString());
		}
		
		return contentProgressTripGuide;
	}
Share on Facebook0Tweet about this on TwitterShare on Google+0Share on StumbleUpon0Share on Reddit0

Leave a Reply


*