# JSF und Bild einlesen



## HeinerBauer (10. Okt 2007)

Hallo, 

nach etlichen Versuchen muss ich hier leider die Frage stellen. Wie kann ich innherhalb einer JSF Anwendung in einer java Klasse ein Bild aus dem WebContent/icons Folder einlesen ?


Bsp packageStruktur:

src
  -  de
        -  common
                       - businesslogic
                                           -datatransfer 
                                                            -EineKlasse.java  {
                                                                ...
                                                                 image = ImageIO.read(new File("er findet einfach das File nicht :-(, welchen    korrekten String angeben ? ");
                                                              }






WebContent
                -icons
                       diesesBildsollInEineKlasseJava_eingelesenwerden.jpg



Danke schonmal für Antworten oder Vorschläge


----------



## zordan (10. Okt 2007)

Du könntest mal den Pfadnamen ausgeben in dem dein Webserver anfängt zu suchen, wenn du einfach ein new File(".") machst.
Durch die Ausgabe kannst du dann schauen, welchen Pfad du wirklich zusammen bauen musst.

gruß


----------



## HeinerBauer (10. Okt 2007)

Hallo, also für


```
File f = new File(".");
 System.out.println("path: "+f.getPath());
```

wird einfach nur der Punkt ausgegeben und für andere path ausgaben 

C:\eclipse.3.3\eclipse


habs auch schon mit


```
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
//    try {
//      URL test = context.getResource("/icons/image1.jpg");
////      System.out.println("getFile: "+test.getFile());
////      System.out.println("getPath: "+test.getPath());
//      
//      f = new File(test.getFile());
//      
//    
//    }catch(Exception ex){
//      System.out.println("Fehler:"+ex.toString());
//    }
```


probiert. es geht nicht  ???:L [/code]


----------



## HeinerBauer (10. Okt 2007)

seufz, 
hab eine lösung gefunden. weiß allerdings nicht ob die verwendung eines FacesContext in einer DTO Klasse gut ist ...



```
public class EineDTOKlasse {

   //...
  BufferedImage image;

   public void setzeBild () {
        ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
    try {
       //Webserver sucht im WebFolder WebContent
      URL test = context.getResource("/icons/dialog.jpg");  
  
      image = ImageIO.read(test);
      
    }catch(Exception ex){
      System.out.println("Fehler:"+ex.toString());
    }
   }
}
```


----------



## Sanix (10. Okt 2007)

Meiner Meinung nach funktioniert es nur so. Wieso setzt du das Bild nicht ausserhalb? Also, so dass du dem setter schon ein BufferedImamge übergeben musst?


----------

