2013-10-09 5 views
0

Как использовать переменную ресурса для создания динамического пути?Путь динамических ресурсов JSF

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

Благодаря

ответ

3

Просто используйте атрибут name вместо value атрибут. Атрибут value принимает URL-адрес, тогда как атрибут name принимает единственное имя ресурса. Затем под крышками разрешается так же, как #{resource[name]}.

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

Ваша проблема может быть решена одним из двух способов:

  1. Встройте '/path/' часть в вашей модели, так что #{image} вернет полный путь к ресурсу;
  2. Создать псевдоним для чтобы быть сгенерирован путем изображения, используя <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 : '')}' 
Смежные вопросы