我无法在JSF页面上显示外部主机的图像。在我的例子中,它是Apache文件服务器。我正在@RequestScoped
bean中创建图像URL,然后尝试将其作为@ViewScoped
bean中的String传递给前端。
我试图以两种方式显示图像: 首先加载JSF:
<h:graphicImage name="#{myViewScopedBean.myObject.mainImageUrl}" />
然后使用此answer中引用的html <img>
标记。
之后我尝试打印myObject
的所有属性。
除mainImageUrl
外,所有String属性都显示良好。而且我100%确定我在后端设置mainImageUrl
。
什么可以引发这个问题?有没有安全的JSF配置?
答案 0 :(得分:1)
name
的{{1}}属性应代表JSF资源名称,而不是URL。 JSF资源在其他How to reference CSS / JS / image resource in Facelets template?中进行了解释如果您打算指定一个真实的URL,那么您应该使用<h:graphicImage>
attribtue,或者仅使用纯HTML value
。
所以,
<img>
或者
<h:graphicImage value="#{myViewScopedBean.myObject.mainImageUrl}" />
如果仍然无效,那么显然网址是完全错误的。验证生成的HTML输出和浏览器的内置HTTP流量监视器(按F12)。您应该能够通过将该URL直接复制到浏览器的地址栏中来独立打开图像。