Nella versione EL 2.2 corrente, non è possibile annidare espressioni EL né concatenare variabili EL in questo modo. Utilizzare <c:set>
per preparare la chiave dinamica prima di utilizzarlo in un'altra espressione EL semplicemente inlining l'espressione EL in una stringa:
<c:set var="resourceName" value="images:primefaces-ui/#{car.manufacturer}.jpg" />
<p:graphicImage value="#{resource[resourceName]}"/>
Un'alternativa è semplicemente utilizzando library
e name
attributi invece di generare un URL basato su quelli via #{resource}
mappatura:
<p:graphicImage library="images" name="primefaces-ui/#{car.manufacturer}.jpg" />
Aggiornamento: dal EL 3.0, è possibile utilizzare l'operatore +=
a String-c oncatenate EL variabili, se davvero non è possibile utilizzare library/name
per qualche motivo.
<p:graphicImage value="#{resource['images:primefaces-ui/' += car.manufacturer += '.jpg']}"/>
Questo si basa su un dettaglio di implementazione ui: param però - non promette di impostare la variabile nel contesto del modello corrente. Farò riferimento alla risposta di BalusC: http://stackoverflow.com/a/20376916/1341535 –