1

私は JSF 2.0 を勉強していImageIconて、クラスに参加しています。これImageIconを JSF ページに表示できますか?

4

2 に答える 2

3

進行中のいくつかの主要な概念上の誤解があります。

Java/JSF は Web サーバー上で実行され、HTML を生成します。HTML は Web ブラウザー上で実行され<link>、要素内の (相対) URL によって CSS/JS/画像ファイルを参照できます。Swing の一部であり、このすべてとは何の関係もありません。<script><img>ImageIcon

Swing は HTML をまったく生成しません。JSF バッキング Bean クラスや「プレーン バニラ」サーブレット クラスなど、HTTP リクエストによって呼び出される Java クラスで「Swing 方式」で実行しようとすると、画面にのみ表示されます。これは、Web ブラウザーが実行される物理マシン (まさに HTML が実行される場所) ではなく、Web サーバーが実行される物理マシンに接続されます。

最終的には、通常の HTML 手段でアイコンを表示する必要があります。つまり、要素を使用するか、おそらく CSSプロパティ<img>を持つブロック要素を使用します。background-imageいずれにしても、画像を返す有効な URL を指定する必要があります (つまり、エンドユーザーがブラウザのアドレスバーにその URL を正確に入力すると、画像全体が表示されるはずです)。通常、これは画像ファイルをパブリック Web コンテンツ (JSF (XHTML/JSP) ページも格納する場所) に配置することによって実現されます。

JSF では、コンポーネントを使用して HTML<img>要素を生成でき<h:graphicImage>ます。次の Web コンテンツ フォルダー構造を提供します。

WebContent
 |-- META-INF
 |-- WEB-INF
 |-- resources
 |    `-- images
 |         `-- icon.png
 `-- index.xhtml

および次のコンポーネントindex.xhtml

<h:graphicImage name="images/icon.png" />

その後、エンドユーザーは を開くだけで目的の画像を表示できるはずindex.xhtmlです。

別の方法として、Swing ベースのアプレットまたはWeb スタート (JNLP)アプリケーションを作成して、イメージを として表示し、最終的に HTMLまたはWeb ページの要素をImageIcon介して埋め込むこともできます。しかし、それは明らかに不器用です。<applet><object>

于 2013-01-10T01:55:44.320 に答える
2

サーバー側でイメージにレンダリングする以外ImageIconに、Web ページにアクセスする唯一の方法はアプレットだと思います。

于 2013-01-10T01:27:59.650 に答える