2013-09-16 48 views
0

我有我的展示页面上图像的问题:如何RichFaces的从资源获取可变图像

<h:graphicImage value="resource:///image/actors/#{imageBean.source}" alt="pic" /> 

其中#{imageBean.source} =“image.jpg的”

结果

结果:

[13:10:14.445] GET HTTP://本地主机:7001/web应用核/面/ image.jpg的 [HTTP/1.1 404未找到578ms]

显然不工作,但我不知道什么是正确的方式。

我已经尝试了许多变化,f.e:

- <h:graphicImage value="#{resource['image/actors/imageBean.source']}" alt="pic" /> 
- <h:graphicImage value="resource:///#{imageBean.source}" alt="pic" /> 
- <h:graphicImage value="#{resource['image/akteurs/imageBean.source']}" alt="pic" /> 

我的主要问题是如何让#{} imageBean资源上下文中工作。

正确的路径是:

[13:37:28.935] GET HTTP ://本地主机:7001/web应用核/面/ javax.faces.resource /图像/男演员/ image.jpg的 [HTTP/1.1 200 OK 31毫秒]

设置的web.xml:

<context-param> 
    <param-name>org.richfaces.resourceOptimization.enabled</param-name> 
    <param-value>false</param-value> 
</context-param> 

回答

2

resource:// URI在此上下文中无效。它有一个完全不同的目的。要在视图中引用JSF资源,您应该使用#{resource}


我的主要问题是如何让#{} imageBean资源上下文中工作。

您只需通过事先使用JSTL <c:if>在EL创建另一个字符串变量内联它:

<c:set var="identifier" value="image/actors/#{imageBean.source}" /> 
<h:graphicImage value="#{resource[identifier]}" alt="pic" /> 

或者,如果你的环境支持EL 2.2,利用String#concat()

<h:graphicImage value="#{resource['image/actors/'.concat(imageBean.source)]}" alt="pic" /> 
+0

谢谢,我不知道JSTL之前的EL –