我有这个:
<ui:repeat value="#{orderController.listRequestItem}" var="item">
....
<tbody>
<tr>
<td>#{item.product.codigoProduto}</td>
<td>
<ui:repeat value="#{item.product.materials}" var="m">
#{m.description}
</ui:repeat>
</td>
...listRequestItem为:
public List<RequestItemVO> listRequestItem;我在这里填充它:
listRequestItem = new ArrayList<>(requestVO1.getRequestItem());item.product.materials为:
public Set<MaterialVO> getMaterials()
{
//compiled code
throw new RuntimeException("Compiled Code");
}当我试图访问内部<ui:repeat>上的m时,我无法访问它的方法。
#{item.product.codigoProduto}正确返回产品代码。
发布于 2012-05-14 23:25:01
<ui:repeat>不支持Set<E>。这一支持将在即将发布的JSF2.2(也适用于<h:dataTable>)中得到introduced。JSF 2.2将在本季度发布。
同时,您需要将其转换为List。有几种方法:
List<MaterialVO>,并相应地更改业务代码。个人分发列表材料;
公用分发名单getMaterialList() {返回新材料(ArrayList);}
这只是因为在每次迭代中都会调用getter,所以开销很大。您可能想要添加另一个包装原始set的属性。
此问题与嵌套<ui:repeat>无关。
https://stackoverflow.com/questions/10585973
复制相似问题