14
<p:graphicImage value="#{resource['images:primefaces-ui/#{car.manufacturer}.jpg']}"/>
まず、内部のエルを計算してから、リソースAPIを使用してパスを計算します。 <c:set>
というタグを試しましたが、その変数もELであるため、違いはありません。リソースAPI用のJSFでのEL式のネスト化
<p:graphicImage value="#{resource['images:primefaces-ui/#{car.manufacturer}.jpg']}"/>
まず、内部のエルを計算してから、リソースAPIを使用してパスを計算します。 <c:set>
というタグを試しましたが、その変数もELであるため、違いはありません。リソースAPI用のJSFでのEL式のネスト化
現在のEL 2.2バージョンでは、EL式をネストすることも、EL式を文字列連結することもできません。単に文字列内のEL式をインライン化することにより、他のEL式で使用する前に、動的キーを準備するために<c:set>
を使用します。
<c:set var="resourceName" value="images:primefaces-ui/#{car.manufacturer}.jpg" />
<p:graphicImage value="#{resource[resourceName]}"/>
代替単に#{resource}
を経由して、それらに基づいてlibrary
とname
属性を使用して代わりのURLを生成していますマッピング:
<p:graphicImage library="images" name="primefaces-ui/#{car.manufacturer}.jpg" />
更新:EL 3.0以来、あなたは文字列-Cに+=
演算子を使用することができます何らかの理由で実際にlibrary/name
を使用できない場合、EL変数をoncatenateしてください。
<p:graphicImage value="#{resource['images:primefaces-ui/' += car.manufacturer += '.jpg']}"/>
これはui:param実装の詳細に依存していますが、現在のテンプレートコンテキストで変数を設定することはできません。 BalusC自身の回答を参照します:http://stackoverflow.com/a/20376916/1341535 –