Arc*_*hra 3 java jsf custom-component
我试图显示我的支持bean的图像列表,它具有一个功能
public getImgList(){
return ArrayList<string>imgPathList;
}
Run Code Online (Sandbox Code Playgroud)
现在,必须将此列表渲染为并排显示的等效图像输出.喜欢
[image][image][image]
Run Code Online (Sandbox Code Playgroud)
如果我使用<h:datatable>
它是不可能的,因为它将每行渲染一个,而且我找不到任何方法可以使用自定义组件渲染它们,因为我必须将图像列表传递给自定义组件.任何人都可以解释如何将列表传递给JSF 1.2 Mojarra中的自定义组件?
只需将其指定为属性即可.
<my:component value="#{bean.imagePaths}" />
Run Code Online (Sandbox Code Playgroud)
value
借助于它,它将在自定义组件类的属性中以完全相同的类型提供UIComponent#getValueExpression()
.
鉴于您已经在提出这个微不足道的问题,我认为开发自定义组件会花费大量时间.此外,由于已经存在很多解决方案,你基本上都在重新发明轮子.我建议采用不同的路线,即仅使用现有的标签/组件.有两种选择:
使用JSTL <c:forEach>
.如果你不把它放在另一个迭代组件中,<h:dataTable>
并且你没有在循环中渲染输入元素,这将有效.
<c:forEach items="#{bean.imagePaths}" var="imagePath">
<img src="#{imagePath}" />
</c:forEach>
Run Code Online (Sandbox Code Playgroud)使用第三方组件库,它提供了一个完整的JSF迭代组件,它不会呈现任何HTML.我建议战斧 <t:dataList>
.
<t:dataList value="#{bean.imagePaths}" var="imagePath">
<img src="#{imagePath}" />
</t:dataList>
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
867 次 |
最近记录: |