当前位置: 首页 > 面试题库 >

如何获取公共网站内容资源的InputStream?

屠德宇
2023-03-14
问题内容

我在WAR中打包了一组图像,并在<p:dataGrid>using中对其进行了描述<p:graphicImage>。图像位于/resources/icons文件夹中。我希望能够选择一个图像,并在提交时将该图像的副本保存到磁盘上。

如何才能做到这一点?如何获得InputStream对此图像的参考(或其他参考)?


问题答案:

鉴于此文件夹结构,

您的专案
 |-src
 | `-com
 | `-例子
 | `-BackingBean.java
 |-WebContent
 | |-META-INF
 | |-WEB-INF
 | |-资源
 | | `-图标
 | | `-foo.png
 | `-foo.xhtml

您可以通过采用ExternalContext#getResourceAsStream()相对于webcontent的路径之一来获取它:

ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
InputStream input = externalContext.getResourceAsStream("/resources/icons/foo.png");
// ...

或通过Resource#getInputStream()其中Resource获得-
ResourceHandler#createResource()/resources相对路径:

ResourceHandler resourceHandler = FacesContext.getCurrentInstance().getApplication().getResourceHandler();
InputStream input = resourceHandler.createResource("icons/foo.png").getInputStream();
// ...

关于选择图像并传递其路径,只需执行以下操作:

<h:graphicImage name="icons/foo.png">
    <f:ajax event="click" listener="#{bean.setImage(component.name)}" />
</h:graphicImage>
<h:graphicImage name="icons/bar.png">
    <f:ajax event="click" listener="#{bean.setImage(component.name)}" />
</h:graphicImage>
<h:commandButton value="submit" action="#{bean.saveImage}" />


 类似资料:
  • 我使用< code > SSL _ get _ peer _ certificate(),< code > X509 _ get _ pubkey() API获取网站(www.google.com)https证书公钥,转储公钥时如下: 我发现这和我在浏览器中看到的不一样(在Chrome中,点击URL地址栏中的挂锁,<代码>- 为什么这两种公钥不一样? 我很好奇这两种公钥数据是什么? 更新: 从Ch

  • 家里有个海康智存(NAS)外接了USB扩展柜,其中有2个6T硬盘,在海康智存上设置了USB共享,在 windows10,windows7 都可以通过 \192.168.66.120 访问到共享资源,同时也可以挂在到 centos7 上,家里做了 openwrt 作为主路由并通过 ddns 可以使用域名访问。我想要达到的效果是在 openwrt 上做端口转发,然后在外网可以通过访问域名+端口来访问到

  • 我面临的问题很简单。如果我试图从一个网站获取一些数据,有两个同名的类。但是它们都包含一个具有不同信息的表。我所拥有的代码只向我输出第一个类的内容。它看起来像这样: 如何让代码输出两个表的内容或仅输出第二个表的内容?提前感谢您的回答!

  • 我正在为节点应用程序到web应用程序内服务创建发布管道。问题是我得到了这个错误: 错误:无法获取资源类型“微软网站”和资源名称“调查服务”的资源 ID。错误:无法提取托管服务主体的访问令牌。请为虚拟机“https://aka.ms/azure-msi-docs”配置托管服务标识 (MSI)。状态代码:400,状态消息:请求错误。 我已经激活了MSI,但它仍然不起作用。我在设置中也找不到与服务主体相

  • 问题内容: 我想使用Java来获取网站的源(安全),然后解析该网站以获取其中的链接。我已经找到了如何连接到该URL的方法,但是然后我如何才能轻松地仅获取源代码,更喜欢作为DOM Document oso来获取我想要的信息。 还是有更好的方法连接到https站点,获取源代码(我很容易做到以获取数据表…非常简单),然后这些链接就是我要下载的文件。 我希望它是FTP,但是这些是存储在我的Tivo中的文件

  • 网站的内容由网页构成。通常,当用户访问一个网站时,实际打开的是网站服务器上某个文件目录下的某个网页文件。 当我们在浏览器地址栏里 输入一串URL时, 浏览器就通过查找这串URL对应的“地址”, 找到网页文件,并在浏览器中渲染呈现。 URL的结构说明 URL的结构构成: 传输协议 + 服务器hostname(有时需要端口号) + path(文件路径) + 查询参数 例如,http://zh.wiki