JSF 中资源 API 的 el 表达式的嵌套

发布于 2024-12-13 08:10:01 字数 213 浏览 0 评论 0原文

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

我想先计算内部 el,然后使用资源 API 计算路径。 我尝试了 标签,但它的变量也是一个 EL,所以它没有任何区别。

<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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

仅冇旳回忆 2024-12-20 08:10:01

如果由于某种原因您确实无法使用 library/name,您可以使用 += 运算符来字符串连接 EL 变量。

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

该运算符是在 EL 3.0(Java EE 6,2009 年 12 月)中引入的。在旧版本中,您不能以这种方式嵌套 EL 表达式或字符串连接 EL 变量。您需要使用 < ;c:set> 在另一个 EL 表达式中使用动态密钥之前,只需将 EL 表达式内联到字符串中即可准备动态密钥:

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

另一种方法是简单地使用 libraryname 属性,而不是根据通过 #{resource} 映射生成 URL:

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

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']}"/>

This operator was introduced in EL 3.0 (Java EE 6, December 2009). In older versions, you cannot nest EL expressions nor String-concatenate EL variables that way. You need to 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" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文