0

私はjsfフレームワークでprimefacesを使用しています。たとえば、画像が保存された場所のURLソースを保存するフィールドがデータベースにあります。

テーブルパーソン:

id: integer
name: varchar
img: varchar ("C:\images\person\person1.jpg")

そのため、Java y の私のメソッドではその URL 文字列を返しますが、グラフィック イメージ ラベルを配置すると、このようにロードされますhttp://localhost:8080/..../C:\images\person\person1.jpg

何か案は???

<p:graphicImage value="#{person.img}"/>

この行は純粋なhtmlです

<img  src="C:\images\person\person1.jpg" alt=""/>
4

2 に答える 2

1

ファイルシステム上にあるため、その画像がデフォルトのサーブレットによって、または JSF リソースとして提供されることを期待しているようです。そのイメージが Web アプリの一部でない限り、これは起こりません。

それを提供するにはStreamedContent、メソッドから次のようなオブジェクトを返しますreturn new StreamedContent(new FileInputStream(getPathFromDatabase()));。画像は別のリクエストで Primefaces リソース ハンドラによって提供されるため、返されるプロパティはセッション スコープまたはリクエスト スコープで使用できる必要があることに注意してください。これは、ビュー スコープの Bean から StreamedContent オブジェクトを返す場合、それ以降のリクエストでは使用できないことを意味します。

于 2013-08-14T07:30:51.327 に答える
0

graphicImage の value 属性は、コンテキストに相対的な相対 URL (または StreamedContent を実装する場合はバイナリ ストリーム) です。つまり、アプリケーションの URL に追加され、次のようになりますhttp://hostname:port/appname/relative_image_url

于 2013-08-14T04:56:17.923 に答える