JSF + JSP + JS -> PDF öffnen

mar05

Grünschnabel
Code:
<h:commandButton value="Pdf öffnen" action="#{Pdf.generatePdf}" onclick="window.open('Pfad_zum_PDF','ref','resizable=yes,scrollbars=yes,height=400,width=300');" styleClass="button-standard" />

<%
	FacesContext fc = FacesContext.getCurrentInstance();
	javax.faces.application.Application app = fc.getApplication();
	PdfBean text = (PdfBean)app.createValueBinding("#{Pdf}").getValue(fc);
	String pdf = text.getPdfpath();
%>

Mein Problem: Der Wert, den die Funktion getPdfpath() liefert (nämlich den Pfad und Namen der Pdf-Datei, soll in einem separaten Fenster geöffnet werden, idealerweise an einer Stelle wie Pfad_zum_PDF im Button. Gibt es irgendeine Möglichkeit, den Variablenwert vom Jsp-Code an JS zu übergeben.

Ich bin für jede Lösung dankbar, egal wie unelegant sie ist ;)

mar05
 
ok, habs selbst gelöst:

Code:
<% 
	FacesContext fc = FacesContext.getCurrentInstance();
	javax.faces.application.Application app = fc.getApplication();
	PdfBean text = (PdfBean)app.createValueBinding("#{Pdf}").getValue(fc);
	String pdf = text.getPdfpath();
%>

<script type="text/javascript">window.open(<%=pdf%>,'ref','resizable=yes,scrollbars=yes,height=600,width=400');</script>

-> Einfacher als ich gedacht habe. Aufpassen muss man nur, wenn man den Pfad im Javacode so hat: "C:\tomcat\etc...\x.pdf", denn dann funktioniert das nicht. Deshalb noch den Getter verändert:

Code:
public String getPdfpath() {
		return pdfpath.replaceAll("\\\\", "/");
	}

.. vielleicht hilft's ja mal irgendwem

mar05
 
Zurück