Ответ 1
В текущей версии EL 2.2 вы не можете вставлять EL-выражения или String-concatenate EL-переменные таким образом. Используйте <c:set>
, чтобы подготовить динамический ключ перед его использованием в другом выражении EL, просто вставив выражение EL в строку:
<c:set var="resourceName" value="images:primefaces-ui/#{car.manufacturer}.jpg" />
<p:graphicImage value="#{resource[resourceName]}"/>
Альтернативой является просто использование атрибутов library
и name
вместо генерации URL-адреса на основе данных с помощью #{resource}
mapping:
<p:graphicImage library="images" name="primefaces-ui/#{car.manufacturer}.jpg" />
Обновить: с EL 3.0 вы можете использовать оператор +=
для переменных String-concatenate EL, если по какой-то причине вы действительно не можете использовать library/name
.
<p:graphicImage value="#{resource['images:primefaces-ui/' += car.manufacturer += '.jpg']}"/>