2011-01-12 9 views
0

Ich weiß, dass für JSF, um ein Bild anzuzeigen, der Pfad vom Web-/Anwendungsserverstamm sein muss, nicht vom Systemstamm. Also kein absoluter Pfad. Aber hier ist mein Problem. Da ich dem Benutzer erlauben werde, eigene Bilder hochzuladen und sie später anzuzeigen, muss ich die Bilder irgendwo speichern. Wenn ich das Bild jedoch in meinem Projekt abspeichere, werden durch das erneute Projizieren des Projekts möglicherweise meine Bilder gelöscht. Daher denke ich, dass es am besten ist, in einen Ordner hochzuladen, der nicht von einer zukünftigen Wiederverwendung betroffen ist. Aber dann würde mir h: graphicImage oder p: graphicImage den absoluten Pfad nicht erlauben. Was sind meine Möglichkeiten, um dieses Problem zu lösen?JSF Bild und absoluter Pfad

Ich weiß, das gib mir den Weg zu meinem Projekt-Krieg

ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext(); 
String path = servletContext.getRealPath(""); 

Gibt es einen Weg, um mich auf die Web-/Anwendungs ​​Wurzel zu bekommen?

Primefaces 2.2-RC2
Glassfish 3.0.1
Mojarra 2.0.3 Java EE 6

EDIT

Nach ein wenig Forschung, ich lerne die PrimeFaces erlauben Sie zu streamen der Inhalt des Bildes mit FileInputStream, und Sie können FileInputStream mit absoluten Pfad. Dies kann eine gute Lösung sein, bis ich getestet habe und herausfinden, dass dies nur auf RequestScoped und SessionScoped Bean funktionieren kann, aber nicht ViewScoped.

Hier ist der Link, den ich posten, um ihre Entwickler über diese Hauptfehler zu benachrichtigen. http://primefaces.prime.com.tr/forum/viewtopic.php?f=3&t=7052

Irgendeine andere Idee?

+0

Den obigen Link enthält eine Lösung für mich. Hör zu. –

Antwort

3

Bild Gerade ein besonderes Servlet, ImageServlet, die (zum Beispiel) /image/* abgebildet wird, und die Bilder von ihm senden (bekommen sie als InputStream, und diese OutputStream auf die Antwort zu schreiben)

+0

werden Sie mir bitte ein bisschen Beispielcode geben? –

+0

@Harry: Überprüfen Sie den doppelten Link dafür :) – BalusC

+0

@BalusC: Ich lese es jetzt. Ich habe auch paar Fragen für Sie? Vielen Dank –