java - 将 ImageIcon 从类显示到 JSF 页面?

标签 java swing jsp jsf imageicon

我正在学习 JSF 2.0,我在类里面有一个 ImageIcon。我可以将此 ImageIcon 显示到 JSF 页面吗?

最佳答案

存在一些重大的概念误解。

Java/JSF 在网络服务器上运行并生成 HTML。 HTML 在网络浏览器上运行,可以通过 <link> 中的(相对)URL 引用 CSS/JS/图像文件, <script><img>元素。 ImageIcon是 Swing 的一部分,与这一切无关。

Swing 根本不生成任何 HTML。当您仍然尝试在由 HTTP 请求调用的 Java 类(例如 JSF 支持 bean 类甚至“普通”servlet 类)中以“Swing 方式”运行它时,它只会显示在屏幕上它连接到运行网络服务器的物理机器,而不是运行网络浏览器的物理机器(这正是运行 HTML 的地方)。

最终,您需要通过正常的 HTML 方式显示图标。也就是说,使用 <img>元素,或者可能在带有 CSS background-image 的 block 元素上属性(property)。无论哪种方式,他们都必须指向一个返回图像的有效 URL(也就是说,当最终用户在浏览器的地址栏中准确输入该 URL 时,它应该会看到完整的图像)。通常,这是通过将图像文件放在公共(public)网络内容中来实现的(您还可以在其中存储您的 JSF (XHTML/JSP) 页面。

在 JSF 中,您可以生成一个 HTML <img>元素使用 <h:graphicImage>成分。提供了以下 webcontent 文件夹结构

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

index.xhtml 中的以下组件

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

那么最终用户应该能够通过打开 index.xhtml 来看到所需的图像.

另一种方法是创建一个基于 Swing 的 appletwebstart (JNLP)将图像显示为 ImageIcon 的应用程序最后通过 HTML 嵌入 <applet><object>网页中的元素。但这很笨拙。

关于java - 将 ImageIcon 从类显示到 JSF 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14249383/

相关文章:

java - 基于全词短语的最长最常见子串

Java图像显示问题

java - 带有组件的 JFrame 的 swing mouseExited()

xml - 从 tomcat 服务器上的 jsp 访问 xml 会抛出 FileNotFoundException 试图访问 .keystore?

java - 在 JSP 中使用隐藏表单持久保存数据

java - iText - Java Android - 将字段添加到现有 pdf

java - toBlockingFirst方法靠谱吗?

java - 如何使用 Java 在 OpenCV 3.0.0 中使用 BackgroundSubtractorMOG?

java - JCombox 可以共享模型但不能共享所选项目状态吗?

java - Spring MVC - 无法找到自定义标签的标签库