2012-11-29 44 views
0

我无法从查询中提取信息并将其放入dataTable中。从查询中提取结果到数据表

我需要提取大于输入价格的书籍条目。

我觉得这部分有点工作,但我需要将它排序到数据表中,以便它可以被读取。 (使它看起来很漂亮)

我不明白我在哪里丢失代码?在查询排序出来更多??或者我可以只访问信息并将其放入dataTable中。

这是我的BookQueries.xhtml页面的样子,但它不工作! :(

<h:dataTable id="table1" value="#{bookController.findBookGreater()}" var="item" 
       border="1"> 
     <f:facet name="header"> 
      <h:outputText value="Book Query Results" /> 
     </f:facet> 
     <h:column> 
      <f:facet name="header"> 
       <h:outputText value="Books" /> 
      </f:facet> 
      <h:outputText value="#{book.title}" /> 
     </h:column> 
     <h:column> 
      <f:facet name="header"> 
       <h:outputText value="Price" /> 
      </f:facet> 
      <h:outputText value="#{book.price}" /> 
     </h:column> 

    </h:dataTable> 

在BookController.java I类有:

public List<Book> findBookGreater() { 
    return ejbFacade.findBookByPrice(bookPrice); 
} 

而在BookFacade.java我:

public List<Book> findBookByPrice(Integer bprice) { 

EntityManager em = getEntityManager(); 
Query query = em.createNamedQuery("findBooksGreater"); 
query.setParameter("bookprice", bprice); 
List resultList = query.getResultList(); 
return resultList; 

} 

感谢您的可以提供任何帮助! !

回答

1

您定义var="item"

<h:dataTable id="table1" value="#{bookController.findBookGreater()}" var="item" 
      border="1"> 

因此列表中的每个元素将被作为refered item,但你尝试参考book

<h:outputText value="#{book.title}" /> 

改用

<h:outputText value="#{item.title}" /> 
相关问题