Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
398 views
in Technique[技术] by (71.8m points)

nesting of el expressions in JSF for resource API

<p:graphicImage value="#{resource['images:primefaces-ui/#{car.manufacturer}.jpg']}"/>

I would like to calculate the inner el first and then calculate the path using resource API. I tried <c:set> tag but its variable is also an EL, so it does not make any difference.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

In the current EL 2.2 version, you cannot nest EL expressions nor String-concatenate EL variables that way. Use <c:set> to prepare the dynamic key before using it in another EL expression by simply inlining the EL expression in a string:

<c:set var="resourceName" value="images:primefaces-ui/#{car.manufacturer}.jpg" />
<p:graphicImage value="#{resource[resourceName]}"/>

An alternative is simply using library and name attributes instead of generating an URL based on those via #{resource} mapping:

<p:graphicImage library="images" name="primefaces-ui/#{car.manufacturer}.jpg" />

Update: since EL 3.0, you can use the += operator to String-concatenate EL variables, if you really can't use library/name for some reason.

<p:graphicImage value="#{resource['images:primefaces-ui/' += car.manufacturer += '.jpg']}"/>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...