JSFでイメージを表示するには、パスがシステムルートではなくWeb /アプリケーションサーバールートからのものでなければならないことは知っています。だから絶対パス。しかし、ここに私の問題があります。ユーザーが自分の写真をアップロードして後で表示できるようにするため、どこかにイメージを保存する必要があります。ただし、プロジェクト内にイメージを保存すると、将来のプロジェクト再デプロイによってイメージが消去される可能性があります。結果として、今後の再デプロイによって影響を受けないフォルダにアップロードすることが最善の方法だと思います。しかし、h:graphicImageまたはp:graphicImageでは絶対パスを使用できません。この問題を解決するための私の選択肢は何ですか?私は、これは私のプロジェクト戦争JSFイメージと絶対パス
ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
String path = servletContext.getRealPath("");
に私にパスを与える知っている
は私がWeb /アプリケーションのルートに取得する方法はありますか?
Primefaces 2.2-RC2
Glassfishの3.0.1
クロサギ科2.0.3 のJava EE 6
はビットの研究の後、私はPrimeFacesはあなたがストリーミングすることを可能に学ぶ EDIT画像の内容はFileInputStream
を使用し、FileInputStream
に絶対パスを使用できます。これは、私がテストして、これがRequestScopedとSessionScoped Beanでのみ機能し、ViewScopedでは動作しないことがわかるまで、良い解決策になります。
この大きなバグについて、開発者に通知するためのリンクです。 http://primefaces.prime.com.tr/forum/viewtopic.php?f=3&t=7052
他のアイデアはありますか?
上記のリンクが含まれています私のための解決策。見てみな。 –