2013-09-16 4 views
0

У меня есть проблема, показывая изображения на моей странице:Как получить переменное изображение в RichFaces из ресурсов

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

где результат # {imageBean.source} = «image.jpg»

результат:

[13: 10: 14,445] GET HTTP: // локальный: 7001/WebApp-ядро/Лица/image.jpg [HTTP/1.1 404 Not Found 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/WebApp-ядро/лица/javax.faces.resource/фото/актеры/image.jpg [HTTP/1.1 200 OK 31ms]

настройки 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} работает в контексте ресурсов.

Вы можете просто встраивать его, создав еще одну строку в переменную EL заранее, используя JSTL <c:if>:

<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

Спасибо, я не знал об EL до JSTL –

Смежные вопросы