【问题标题】:JSF dynamic resource pathJSF 动态资源路径
【发布时间】:2013-10-09 21:06:54
【问题描述】:

如何使用资源变量创建动态路径?

<ui:repeat value="#{backgroundImageBean.images}" var="image"> 
      <p:graphicImage value="#{resource['/path/#{image}']}" 
       style="width: 100%; height: 100%" /> 
</ui:repeat>

谢谢

【问题讨论】:

    标签: jsf resources


    【解决方案1】:

    只需使用name 属性而不是value 属性。 value 属性采用 URL,而 name 属性已经采用唯一的资源名称。然后它在幕后以与#{resource[name]} 相同的方式解决。

    <p:graphicImage name="path/#{image}" />
    

    【讨论】:

      【解决方案2】:

      您的问题可以通过以下两种方式之一解决:

      1. '/path/' 部分嵌入到您的模型中,以便#{image} 将返回资源的完整路径;
      2. 使用&lt;ui:param&gt;为要生成的图片路径创建别名,并在访问资源时使用:

        <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 : '')}'
      

      【讨论】:

        猜你喜欢
        • 2023-03-04
        • 1970-01-01
        • 2011-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-30
        • 1970-01-01
        相关资源
        最近更新 更多