PDF in JSF einbetten mit dynamischen 'src' Attribut

T

TFalke

Gast
Hallo liebes Forum,

ich möchte auf meiner JSF Seite eine PDF mit Iframe anzeigen lassen.
Das Problem ist allerdings, dass ich das src Attribut nicht dynamisch füllen kann.

Hab auch schon versucht mir das mit <h:eek:utputText> so zusammeln zu basteln, dass der richtige Inhalt geladen wird, nur renderd der Browser dann leider nicht das iframe fenster, sondern gibt alles als plain text aus...

Habt ihr eine Idee?

So sieht mein Beispiel aus:
<iframe src="#{publicBean.pdfFilepath }" style="width:850px;height:500px"></iframe>

Hoffe, ihr könnt mir helfen :)
 
T

TFalke

Gast
Danke für die Antwort.
Ja mit dem
Java:
<f:verbatim>
hab ich das auch schon versucht gehabt... hat leider nicht geklappt.

Nach ein bisschen Suchen habe ich noch herausgefunden, dass man auf die Bean via '$' zugreifen kann(bei HTML Tags), falls die schon initialisiert wurde.
Das füllen des src Attributes klappt jetzt.

Leider wird PDF, die ich in 'WebContent/tmp' zwischenspeichere erst gefunden, wenn der Server neugestartet wird.
Woran liegt das? Die Datei liegt aber auf der Festplatte....

Kann ich das Tmp Verzeichnis auch auslagern? Wie kann ich das konfigurieren?
 
T

TFalke

Gast
Nur, um die Sache noch abzuschließen. Und vielleicht hilft es ja jemandem noch....

Die PDF sende ich als byte[] an den Client mit.
Java:
public void viewPdf(byte[] pdf, String filename) throws IOException {
		FacesContext faces = FacesContext.getCurrentInstance();
		HttpServletResponse response = (HttpServletResponse) faces.getExternalContext().getResponse();
		response.setContentType("application/pdf");
		response.setContentLength(pdf.length);
		response.setHeader("Content-disposition","inline; filename=\""+filename+"\"");
		ServletOutputStream out = response.getOutputStream();
		out.write(pdf);
		faces.responseComplete();
	}

Durch das 'inline' bei 'Content-disposition', wird die Datei nicht zum Download angeboten, sondern direkt im Browser angezeigt.
Da ich meine JSF sowieso mit iframe auf meiner Website einbinde, funktioniert das auch erstmal ganz gut. Nur ein "Zurück" - Link vermisse ich noch :(
Wenn da jemand einen Tipp hat, immer her damit ;)
Ansonsten kann das Thema hier geschlossen werden.

Hoffe geholfen zu haben^^
 

Ähnliche Java Themen

Neue Themen


Oben