Это невозможно, и это также нарушает принцип СУХОЙ .
Лучше всего ставить либо , передавая его как List<String>
от боба, чтобы вы могли повторить его, используя <ui:repeat>
:
<cs:small_slider images="#{bean.images}" />
с
<cc:interface>
<cc:attribute name="images" type="java.util.List" required="true" />
</cc:interface>
<cc:implementation>
<div id="slider-container">
<div id="slider-small">
<ui:repeat value="#{cc.attrs.images}" var="image">
<h:graphicImage library="images" name="#{image}" />
</ui:repeat>
</div>
</div>
</cc:implementation>
Или вместо этого определите ее как жестко запятую строку, разделенную запятыми, и используйте JSTL fn:split()
, чтобы разбить их на String[]
, который вы, в свою очередь, передаете в <ui:repeat>
:
<cs:small_slider images="about/1.jpg,about/2.jpg,about/3.jpg" />
с
<cc:interface>
<cc:attribute name="images" type="java.lang.String" required="true" />
</cc:interface>
<cc:implementation>
<div id="slider-container">
<div id="slider-small">
<ui:repeat value="#{fn:split(cc.attrs.images, ',')}" var="image">
<h:graphicImage library="images" name="#{image}" />
</ui:repeat>
</div>
</div>
</cc:implementation>
Не связано с конкретной проблемой, попытайтесь соответствовать соглашениям об именах Java / JSF. Я бы переименовал ваш small_slider.xhtml
в renameSlider.xhtml
, чтобы вы могли использовать его как <cs:smallSlider>
, что прекрасно согласуется со всеми обычными компонентами JSF.