java - 将查询结果拉入数据表

标签 java jsf jakarta-ee 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 类中,我有:

 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;

}

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

最佳答案

您定义var="item"

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

因此列表中的每个元素都将被引用为 item,但您尝试引用 book

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

使用代替

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

关于java - 将查询结果拉入数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13636572/

相关文章:

java - 将 JPanel 的枢轴点设置为其中心

java - java中匿名子类是什么意思?

java - 我如何在不知道字符串长度的情况下在 JFormattedTextField 上使用 MaskFormatter?

jsf - 如何在不验证所有必需输入的情况下调用命令按钮?

java - 从字符串中删除特殊字符

java EE 安装和设置

java - 如何在 Java Web 应用程序中显示表格数据

java - 为什么 JSF + Tomahawk App 会在 MYSQL 数据库中生成全空字段的记录

multithreading - 从线程设置 bean 属性

java - 在 Eclipse 中放置配置文件的正确位置