JFS在页面加载上加载数据表

时间:2014-01-11 17:00:42

标签: java mysql jpa glassfish jsf-2.2

我是jsf和jpa的新手,但是我想在数据库中的一个表中显示我的所有记录。

可以从我的导航中访问用于显示所有记录的数据页。

<h:body>
    <h:form>
        <p:menu styleClass="left-navigation">
            <p:submenu label="Versand" >
                <p:menuitem value="Bargeld-Versand" action="createNewAblieferung"/>
                <p:menuitem value="Bargeld-Bestellung"/>
                <p:menuitem value="Wertpost-Versand"/>
            </p:submenu>
            <p:submenu label="Administration">
                <p:menuitem value="Bestellungen"/>
                <p:menuitem value="Ablieferungen" action="allAblieferungen"/>
                <p:menuitem value="User"/>
            </p:submenu>
        </p:menu>
    </h:form>
</h:body>

这是数据页“allAblieferungen.xhtml”的代码,它应该显示primefaces数据表中的所有记录。

<h:body>
    <ui:composition template="WEB-INF/template/master.xhtml">
        <ui:define name="content">
            <h:form>
                <p:dataTable var="abl" value="#{ablieferungPM.getAllAblieferungen()}">
                    <p:column headerText="ID">
                        <h:outputText value="#{abl.id}"
                    </p:column>
                    <p:column headerText="AblieferndeGS">
                        <h:outputText value="#{abl.ablieferdeGS}"
                    </p:column>
                    <p:column headerText="EmpfängerGS">
                        <h:outputText value="#{abl.empfaengerGS}"
                    </p:column>
                    <p:column headerText="Bemerkung">
                        <h:outputText value="#{abl.bemerkung}"
                    </p:column>
                    <p:column headerText="Summe">
                        <h:outputText value="#{abl.summe}"
                    </p:column>
                </p:dataTable>
            </h:form>
        </ui:define>
    </ui:composition>
</h:body>

我的托管bean(ablieferungPM.java)提供了ui的所有方法,包括用于显示表的所有记录的“getAllAblieferungen()”方法。

@EJB
    private AblieferungService service;

public List<Ablieferung> getAllAblieferungen() {
    return service.getAllAblieferungen();
}

该方法从无状态bean(AblieferungService.java)调用服务。该服务包括业务逻辑的所有方法,并使用jpa进行数据库访问。 “getAllAblieferungen()”从我的数据库中收集对象

@PersistenceContext
    private EntityManager em;

public List<Ablieferung> getAllAblieferungen() {
    return em.createNamedQuery(Ablieferung.FIND_ALL, Ablieferung.class).getResultList();
}

获取表格的所有对象,我使用下面的实体类查询

@NamedQueries({
@NamedQuery(name = Ablieferung.FIND_ALL, query = "SELECT a FROM Ablieferung a"),})

所以,问题是,点击链接“Ablieferung”,什么都没有,真的没什么。玻璃鱼的控制台也不例外...... 可以使用导航第一个链接上的表单将新对象插入数据库。这很好用,所以与数据库的连接应该没问题!

1 个答案:

答案 0 :(得分:0)

尝试url中的menuitem属性,在这种情况下,action会发出POST请求。

<p:menuitem value="Ablieferungen" url="myPage?faces-redirect=true"/>

请检查此&gt; PrimeFaces navigation using MenuItem