문제

저는 jsf와 jpa를 처음 사용하지만 db 테이블의 모든 레코드를 표시하고 싶습니다.

모든 기록을 표시하기 위한 데이터 페이지는 내 탐색에서 액세스할 수 있습니다.

<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>

그리고 이것은 Primefaces 데이터 테이블의 모든 레코드를 표시해야 하는 데이터 페이지 "allAblieferungen.xhtml"의 코드입니다.

<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)은 테이블의 모든 레코드를 표시하기 위한 "getAllAblieferungen()" 메소드를 포함하여 UI에 대한 모든 메소드를 제공합니다.

@EJB
    private AblieferungService service;

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

메소드는 Stateless 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" 링크를 클릭해도 아무 일도 일어나지 않는다는 것입니다.글라스피시 콘솔에서도 예외는 없군요...탐색의 첫 번째 링크에 있는 양식을 사용하여 새 개체를 데이터베이스에 삽입할 수 있습니다.이것은 잘 작동하므로 데이터베이스 연결도 괜찮을 것입니다!

도움이 되었습니까?

해결책

시도해 보세요 url 의 속성 menuitem, 이 경우에는 action POST 요청을 수행합니다.

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

이것을 확인해주세요> MenuItem을 사용한 PrimeFaces 탐색

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top