如何将ArrayList/lists/iterables参数传递给JSF1.2自定义组件



我正在尝试显示来自我的后台bean的图像列表它有一个函数

public getImgList(){
    return ArrayList<string>imgPathList;
}

现在这个List必须被渲染成等价的输出并排显示的图像。像

[image][image][image]

这是不可能的,如果我使用<h:datatable>,因为它会渲染所有的一行,我找不到任何方法来渲染它们使用自定义组件,因为我必须将图像的列表传递给自定义组件。谁能解释一下如何将列表传递给JSF 1.2 Mojarra中的自定义组件?

直接指定为属性。

<my:component value="#{bean.imagePaths}" />

UIComponent#getValueExpression()的帮助下,它将在自定义组件类的value属性中作为完全相同的类型可用。


考虑到您已经在问这个微不足道的问题,我认为开发自定义组件将花费您很多时间。此外,由于已经存在很多解决方案,您基本上是在重新发明轮子。我建议采取不同的路线,即只使用现有的标签/组件。有两个选项:

  • 使用JSTL <c:forEach>。如果你不把它放在另一个迭代组件(如<h:dataTable>)中,并且你没有在循环中呈现输入元素,这将有效。

    <c:forEach items="#{bean.imagePaths}" var="imagePath">
        <img src="#{imagePath}" />
    </c:forEach>
    
  • 使用第三方组件库,它提供了一个完整的JSF迭代组件,不呈现任何HTML。我建议战斧的<t:dataList>

    <t:dataList value="#{bean.imagePaths}" var="imagePath">
        <img src="#{imagePath}" />
    </t:dataList>
    

相关内容

  • 没有找到相关文章

最新更新