[英]Show ImageIcon from class to JSF page?
我正在学习JSF 2.0,并且在课堂上有一个ImageIcon
。 我可以显示此ImageIcon
到JSF页面吗?
发生了一些重大的概念误解。
Java / JSF在Web服务器上运行并生成HTML。 HTML在网络浏览器上运行,并且可以通过<link>
, <script>
和<img>
元素中的(相对)URL引用CSS / JS /图像文件。 ImageIcon
是Swing的一部分,与这一切无关。
Swing根本不产生任何HTML。 当您仍然尝试在由HTTP请求调用的Java类(例如JSF支持bean类或什至是“普通香草” servlet类)中以“摇摆方式”运行它时,它只会显示在屏幕上它连接到运行Web服务器的物理计算机上,而不是运行在Web浏览器的物理计算机上(这正是HTML的运行位置)。
最终,您需要以常规HTML方式显示图标。 也就是说,使用<img>
元素,或者使用具有CSS background-image
属性的block元素。 无论哪种方式,他们都必须指向一个有效的URL,该URL返回一个图像(也就是说,当最终用户在浏览器的地址栏中输入该URL的专有名称时,它应该完整地看到该图像)。 通常,这可以通过将图像文件放置在公共Web内容中(也可以在其中存储JSF(XHTML / JSP)页面的位置)来实现。
以JSF的方式,您可以使用<h:graphicImage>
组件处理HTML <img>
元素。 提供了以下webcontent文件夹结构
WebContent
|-- META-INF
|-- WEB-INF
|-- resources
| `-- images
| `-- icon.png
`-- index.xhtml
以及index.xhtml
的以下组件
<h:graphicImage name="images/icon.png" />
那么最终用户只需打开index.xhtml
就应该能够看到所需的图像。
一种替代方法是创建一个基于Swing的applet或webstart(JNLP)应用程序,该应用程序将图像显示为ImageIcon
并最终通过HTML <applet>
或<object>
元素将其嵌入网页中。 但这很笨拙。
除了将其渲染到服务器端的图像之外,我要说一个applet是将ImageIcon
导入网页的唯一其他方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.