2017-09-12 3 views
0

私は自分の望む場所に画像をアップロードすることができました。オブジェクト名と同じ名前のこれらの画像に名前を付けました。例えばappleにはappleという名前があり、apple.jpgがあります。 私は電話で直接画像を見ることができます<p:graphicImage name="apple.jpg" id="image" width="40" height="20" library="images" />graphicImageとストリームされたコンテンツprimefacesとjsf

私はすべての果物を含むデータテーブルを持っているとします。果物をクリックするとその果実の写真を撮りたいとします。

if(item.getFruit().getLogo().getName() == item.getFruit().getName()){ 
    //show me image 
} 

私はスタック全体を検索してしまいました。

+1

は、あなたが特定の質問を書いてくださいすることができ、多分あなたのような何かをしたいですmsgstr "選択した行の対応するイメージを表示するにはどうしたらいいですか?"あなたの問題をよりよく説明するより完全なコードを投稿してみてください。 – ziMtyth

答えて

0

私はそれを仮定します:

  • あなたは各画像のURLは、フルーツの実体に文字列フィールドとして保存された画像
  • でフォルダを持っています。

したがって、データベースからフルーツエンティティを読み込むと、フルURLの画像が作成されます。

<ui:repeat var="fruit" value="#{fruitBean.fruitListFromDatabase}"> 
    <h:graphicImage value="#{fruit.imageUrl}" rendered="#{!empty fruit.imageUrl}" />  
    <h:graphicImage library="images" name="no-image.png" rendered="#{empty fruit.imageUrl}" /> 
</ui:repeat> 

前回コードがない画像アップロード(IMAGEURLがnull)の場合には、その後、カスタム無image.pngが表示されていない、果実当たりの画像をレンダリングします。

h:graphicImageは、Webappのリソースフォルダ内にイメージがある場合、ライブラリと名前の属性を指定する必要があります。

h:graphicImageをvalue属性で使用すると、完全な画像URLが表示されます。

アップロードされた画像をアプリケーションリソースファイルに格納しないでください。再デプロイ時にイメージが失われるためです。

カスタムフォルダを提供するには、glassfish-web.xmlでGlassfishを使用している場合など、仮想サーブレットディレクトリを作成できるaproachを使用できます。外部フォルダへの参照を作成する必要がありますさて、画像を見つけることができます

<property name="alternatedocroot_1" value="from=/media/* dir=/data" /> 

:画像を「your-domain.com/media/some-image.png」

+0

この問題はjava-se関連のものではないので、追加したjavaタグを削除しました(プレーンjdk、サーブレットコンテナなし、jsfなし、何も...あなたは成功しないので、java-se関連ではありません) – Kukeltje

関連する問題