2017-08-18 15 views
0

イメージフォルダへの相対パスに問題があります。 イメージをフォルダにリストして、URLをリストに追加してjspに表示したいとします。 コードはこれです:イメージフォルダへの相対パスjava spring

File carpetaImagenes = new File("../../../../../webapp/resources/img/maquinas/"+seleccion); 
    List<String> listaUrlImagenes = new ArrayList<String>(); 

    /** Recorremos el directorio de imagenes de la maquina */ 
    for(File imagen : carpetaImagenes.listFiles()){ 
     String imageFileName = imagen.getName();   
     listaUrlImagenes.add(imageFileName); 
    } 

"carpetaImagenes.listFiles()" の結果は常にnullです。パスが悪いと思う。 フォルダツリーのイメージが表示されます。クラスは "controlador"フォルダにあり、画像は "webbapp/resources/img/maquinas/1"にあります。 enter image description here

私はhauckが幸運のないいくつかの経路を試しました。 ありがとうございます。方法getImageList以下

答えて

0

ユーザと、これはクラスパスからの相対パスである

relativeFilePath = "img/maquinas/"+seleccion; 

を動作する必要があります。私は../../../../../webapp/resourcesは、どこにでも展開されている実際のフォルダです。

private List getImageList(String relativeFilePath) { 
List<String> listaUrlImagenes = new ArrayList<String>(); 
try { 

    InputStream in = getResourceAsStream(relativeFilePath); 
    BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
    String resource; 

    while ((resource = br.readLine()) != null) { 
     listaUrlImagenes.add(resource); 
    } 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
return listaUrlImagenes; 
} 
private InputStream getResourceAsStream(String resource) { 
final InputStream in = ClassLoader cl = this.getClass().getClassLoader().getResourceAsStream(
     resource); 

return in == null ? getClass().getResourceAsStream(resource) : in; 
} 

と作業する必要があり、次のインチ

ClassLoader cl = this.getClass().getClassLoader(); 
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(
     cl); 
Resource[] resources = resolver.getResources("classpath:/img/maquinas/"+seleccion);// or *.png 
for (Resource resource : resources) { 

listaUrlImagenes.add(resource.getFilename()); 
} 
+0

私は春の道を試みましたが、動作しません。画像はsrc/webapp/resources/img/maquinas/1にあります。 – Pedro

+0

他のオプションはどうですか? – surya

+0

動作しません。メソッド呼び出し時にヌルポインタ。私は相対的なパスが間違っていると思う – Pedro

0

最後に作業中です!

File carpetaImagenes = new ClassPathResource("imagenes/maquinas/"+seleccion).getFile(); 
    File[] listaImagenes = carpetaImagenes.listFiles(); 
関連する問題