- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在我的托管 bean 中获取一个 PNG 文件作为 InputStream
,如下所示:
ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
InputStream input = externalContext.getResourceAsStream("/myFile.png");
// input is null.
但是,InputStream
始终为空。这是怎么引起的,我该如何解决?
最佳答案
显然您将资源放在了错误的位置。
ExternalContext#getResourceAsStream()
,在幕后的 servlet 容器的情况下委托(delegate)给 ServletContext#getResoruceAsStream()
, 根植于 WAR 的网页内容(/WEB-INF
和 /META-INF
文件夹的父文件夹,因此其中的文件也可以通过这种方式获得),以及/WEB-INF/lib
中所有JAR的/META-INF/resources
文件夹。对于 JSF 网络应用程序,它通常是 XHTML、CSS、JavaScript 和图像文件。
换句话说,它返回网络资源。它不返回磁盘文件系统资源,为此您需要 new FileInputStream()
反而。它也不返回类路径资源,因为你需要 ClassLoader#getResourceAsStream()
反而。类路径的根在 a.o 中。 /WEB-INF/classes
,/WEB-INF/lib
中的所有 JAR,以及一些 VM/服务器配置的文件夹,具体取决于运行时环境。
在通常的 Web 内容文件结构中,资源文件必须恰好放在此处以便以所需的方式获取它:
WebContent
|-- META-INF
|-- WEB-INF
| |-- faces-config.xml
| `-- web.xml
|-- myFile.png <-- Here.
:
关于jsf - ExternalContext#getResourceAsStream() 返回null,资源文件放在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25784482/
这是我的 demo.xhtml 页面: Hello Demo Portlet!!!! Client 当我在不使用标签的情况下将它部署到门户页面时,它工作正常。
我有两页: String page1 = "user/newuser.jsf"; String page2 = "department/newdepartment.jsf"; 如果我重定向到 page
在 p:ajax 调用上,监听器调用包含 FacesContext.getCurrentInstance().getExternalContext().dispatch("/uri.jsf"
我正在使用 ExternalContext.redirect(String); 将用户重定向到另一个页面的方法: FacesContext.getCurrentInstance().addMessag
我正在尝试在我的托管 bean 中获取一个 PNG 文件作为 InputStream,如下所示: ExternalContext externalContext = FacesContext.getC
当我尝试通过 http://localhost/home/index.html 访问我的开发站点时出现此错误重定向到 http://localhost/home/views/main/index.xh
我正在尝试使用 Exadel Fiji 来渲染饼图。 谁能告诉我 el #{facesContext.externalContext.requestContextPath} 是什么意思? 最佳答案 它
我的 JSF Web 应用程序显示以下错误: /index.xhtml Not Found in ExternalContext as a Resource. 我的目录结构是: - Java 资源 -
在 OmniFaces 中,FullAjaxExceptionHandler找到要使用的正确错误页面后,调用 JSF 运行时来构建 View 并呈现它,而不是包含 AJAX 调用的页面。 为什么这个?
FacesContext 和有什么区别和 ExternalContext ?我什么时候可以使用其中一种?一个有什么,另一个有什么? 以下示例来自 JavaServer Faces 第 3 版一书:
尝试在我们使用的 jsf 应用程序中使用 jsp、servlet 和 java 更改一个 jsf 应用程序 ExternalContext exctx = FacesContext.getCurren
我现有的应用程序是用某种手工制作的 JSP 编写的。它包含一个派生自 HttpServlet 的类,用于处理所有请求和它自己的 HTML 模板语言。我正在尝试使用通用的 JSF 模板语法重写它。现在我
这是一个可以抛出异常的示例按钮: 在我的 ExceptionHandler我有: FacesContext.getCurrentInstance().getExternalContext
考虑一个页面webapp/myPage.xhtml: ... ... ... ... ... 按钮 Action 绑定(bin
我正在尝试从 ExternalContext 检索 Web 应用程序的根 URL , 但无法理解使用哪种方法... 最佳答案 更简洁的方式是: HttpServletRequest request =
简化后,我的错误处理程序如下所示: @Override public void handle() throws FacesException { Iterator unhandledExcep
在 JSF1 中,您可以访问当前 FacesContext 的 bean 实例。经过 ExternalContext ec = FacesContext.getCurrentInstance().ge
我在启动应用程序时遇到此错误。 com.sun.faces.context.FacesFileNotFoundException: /faces/index.xhtml Not Found in Ex
我在 WebSphere 上使用 JSF 1.1 (MyFaces 1.1.8) 时遇到问题。在 Tomcat 5.5 上部署我的应用程序时,此行为不适用,一切正常。 当我尝试从 Ogone(支付网关
我正在尝试开发一个控制台制作的 JSF2 end Primefaces,它在 spring boot 中的嵌入式 tomcat 上运行。这是我的项目配置: pom.xml org.sprin
我是一名优秀的程序员,十分优秀!