gpt4 book ai didi

java - 如何获取公共(public)网页内容资源的InputStream?

转载 作者:行者123 更新时间:2023-11-30 04:54:38 24 4
gpt4 key购买 nike

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

如何做到这一点?我如何获得此图像的引用(InputStream或其他)?

最佳答案

鉴于此文件夹结构,

YourProject |-- src |    `-- com |         `-- example |              `-- BackingBean.java |-- WebContent |    |-- META-INF |    |-- WEB-INF |    |-- resources |    |    `-- icons |    |         `-- foo.png |    `-- foo.xhtml :

You can get it by either ExternalContext#getResourceAsStream() which takes webcontent-relative path:

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

或者通过Resource#getInputStream()其中资源是从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}" />

另请参阅:

关于java - 如何获取公共(public)网页内容资源的InputStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8931902/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com