如何使用资源变量创建动态路径?
<ui:repeat value="#{backgroundImageBean.images}" var="image">
<p:graphicImage value="#{resource['/path/#{image}']}"
style="width: 100%; height: 100%" />
</ui:repeat>
谢谢
只需使用name
属性而不是value
属性。该value
属性采用一个 URL,而该name
属性已经采用了唯一的资源名称。然后在幕后以与#{resource[name]}
.
<p:graphicImage name="path/#{image}" />
您的问题可以通过以下两种方式之一解决:
'/path/'
到您的模型中,以便#{image}
返回资源的完整路径;为要生成的图片路径创建别名,<ui:param>
并在访问资源时使用:
<ui:repeat value="#{backgroundImageBean.images}" var="image">
<ui:param name="path" value="/path/#{image}" />
<p:graphicImage value="#{resource[path]}" />
</ui:repeat>
如果您坚持在不使用参数的情况下执行逻辑并且您的环境支持 EL 2.2+,那么您可以String#concat()
在资源表达式中使用:
#{resource['/path/'.concat(not empty image ? image : '')}'