0

我正在调用这个方法:

public Set<RequestVO> getRequestBySupplier(SupplierVO objectVO)

我有一个OrderController带有此属性和方法的,在单击按钮时调用:

public Set<RequestVO> requestList

public void listOrders()
{
     requestList = requestBO.getRequestBySupplier(supplierVO);
}

调试我可以看到requestList已经填充了正确的信息。在我的orderSearch.html我有这个数据表:

<ui:fragment rendered="#{not empty orderController.requestList}">
     <h:dataTable value="#{orderController.requestList}" var="order">
          <h:column>
               <f:facet name="header">#</f:facet>
               <h:outputText value="#{order.id}" escape="false" />
          </h:column>
     </h:dataTable>
</ui:fragment>

我有我orderControllerrequestListget 和 set 方法。

当我运行代码时,我收到此错误:

/views/fornecedor/orderSearch.xhtml @34,84 value="#{order.id}":类 'java.util.HashSet' 没有属性 'id'。

Stack Trace

javax.el.PropertyNotFoundException:/views/fornecedor/orderSearch.xhtml @34,84 value="#{order.id}":类'java.util.HashSet'没有属性'id'。在 com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:111) 在 javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) 在 javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper .java:182) 在 javax.faces.component.UIOutput.getValue(UIOutput.java:169) 在 com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205) 在 com.sun.faces。 renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:355) 在 com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164) 在 javax.faces。

4

1 回答 1

2

h:datatable不支持Set,可以转换成List

例如

public List <RequestVO> getListAsSet(Set<RequestVO> set) {
  return new ArrayList<RequestVO>(set);
}

btwui:repeat也不Set支持

于 2012-05-10T12:52:47.880 回答