2016-05-31 2 views
0

私はVaadin 7.6とSpring Bootを使ってコードを作成しようとしています。私はmaページに画像を表示したいと思います。そのために、私は見つけたVaadinの本を読んだ:Vaadin 7.6とSpring Bootプロジェクトで画像を読む

// Find the application directory 
String basepath = VaadinService.getCurrent() 
          .getBaseDirectory().getAbsolutePath(); 
// Image as a file resource 
FileResource resource = new FileResource(new File(basepath + "/WEB-INF/images/image.png")); 
// Show the image in the application 
Image image = new Image("Image from file", resource); 

しかし、問題がある。スプリングブートの場合、WEB-INFフォルダはありません。

  • リソース

リソース/テンプレート

  • 静的リソース/私はディレクトリ resources/static/imagesを作成したと私は画像を保存した:私はそれらのフォルダを持っています。

    String basePath = VaadinService.getCurrent().getBaseDirectory().getAbsolutePath(); 
    FileResource resource = new FileResource(new File(basePath + "/images/telecaster.jpg")); 
    Image telecaster = new Image("Telecaster", resource); 
    

    しかし、私はミリアンペアページをしようとすると、私は例外を持っている:後、私はそのようなコードを試してみたjava.io.FileNotFoundException:/民間の/ var /フォルダ/ NM/kv40tr650llcmk6rssnxzt900000gn/T/tomcat-docbase.5908407388863057264.8080/images/telecaster.jpg(そのようなファイルやディレクトリはありません)。 URL http://localhost:8080/images/telecaster.jpgを試してみると画像が表示されるため、画像がうまく展開されています。

    Vaadinのソースコードから画像(および任意のファイルタイプ)にアクセスするにはどうすればよいですか?

    答えて

    0

    私は解決策を見つけました。 ディレクトリsrc/main/WEB-INF/imagesを作成し、フォルダWEB-INFをリソースフォルダとして定義します。

    した後、私はリソースに関する古典的なコードを書く:

    String imagePath = IdeaxBoxUI.class.getClassLoader().getResource("images/telecaster.jpg").getPath(); 
        FileResource resource = new FileResource(new File(imagePath)); 
        Image telecaster = new Image("Telecaster", resource); 
    
    +0

    あなたは他の回答者の提案を試してみましたか?なぜならThemeResourceが望ましい方法だからです。 –

    2

    また、ThemeResourceクラスを使用してイメージを読み込むこともできます。クラスは、デフォルトでは、VAADIN/themes/{themeName}の標準ディレクトリの下にあるリソースを探します。次に、コード例を示します。

    new ThemeResource("images/admin-user.jpg") 
    

    imagesは、VAADIN/themes/{themeName}ディレクトリの下にあるディレクトリです。

    関連する問題