JSF Daten werden nicht aktualisiert aus Datenbank gelesen

Diskutiere Daten werden nicht aktualisiert aus Datenbank gelesen im Data Tier Forum; Hallo. Ich habe bei meiner Java EE Anwendung ein Problem, dass mir nun schon seit mehreren Stunden Kopfschmerzen bereitet und ich nicht weiß...

  1. Rallenaldo
    Rallenaldo Mitglied
    Hallo.

    Ich habe bei meiner Java EE Anwendung ein Problem, dass mir nun schon seit mehreren Stunden Kopfschmerzen bereitet und ich nicht weiß wie ich es lösen soll.

    Folgendes Szenario:

    Ein User ist eingeloggt und legt eine Firma an. Diese Firma wird korrekt in die Datenbank eingetragen(Keine Fehlermeldungen). Wenn der User jetzt innerhalb des User-Kontrollzentrums auf einen Link klickt gelengt er zu einer Übersichtsseite über seine Firmen. Für jede Firma, die noch kein "Showcase"-Entity hat, wird nun durch eine Methode automatisiert ein Showcase-Entity erstellt. Auch hier gibt es keine Fehlermeldungen und die Entities werden korrekt in die Datenbank eingetragen.

    Leider funktioniert die Ausgabe der Liste nicht richtig. Die soeben neu erstelle Firma wird aufgelistet, aber z.B. die ShowcaseId wird nicht ausgegeben. Erst nachdem ich bei Netbeans "Clean & Build" und anschließend "Run" ausführe, wird die Liste komplett dargestellt.

    ShowcaseListProducer:

    Code (Java):
    package de.zerrenda.zerrendaee6.data;

    import de.zerrenda.zerrendaee6.beans.LoginBean;
    import de.zerrenda.zerrendaee6.entities.Company;
    import de.zerrenda.zerrendaee6.entities.Showcase;
    import de.zerrenda.zerrendaee6.qualifiers.Added;
    import de.zerrenda.zerrendaee6.services.ShowcaseService;
    import java.util.ArrayList;
    import java.util.List;
    import javax.annotation.PostConstruct;
    import javax.enterprise.context.RequestScoped;
    import javax.enterprise.event.Observes;
    import javax.inject.Inject;
    import javax.inject.Named;

    @Named
    @RequestScoped
    public class ShowcaseListProducer {

        @Inject
        private ShowcaseService showcaseService;

        @Inject
        private LoginBean loginBean;

        private List<Showcase> showcaseList;
        private List<Company> companyList = new ArrayList<>();

        public List<Showcase> getShowcaseList() {
            return showcaseList;
        }

        public void setShowcaseList(List<Showcase> showcaseList) {
            this.showcaseList = showcaseList;
        }

        public List<Company> getCompanyList() {
            return companyList;
        }

        public void setCompanyList(List<Company> companyList) {
            this.companyList = companyList;
        }

        public void onShowcaseAdded(@Observes @Added Showcase showcase) {
            System.out.println("onShowcaseAdded des ShowcaseListProducers wird ausgeführt");
            showcaseService.addShowcase(showcase);
        }

        @PostConstruct
        public void init() {
            showcaseList = showcaseService.getAllShowcases();
            createShowcaseList();
        }

        public void createShowcaseList() {

            for (Showcase showcase : showcaseList) {
                if (showcase.getCompany().getUser().equals(loginBean.getLoggedInUser())) {
                    companyList.add(showcase.getCompany());
                }
            }
        }

    }
    Showcase.xhtml

    HTML:

    <?xml version='1.0' encoding='UTF-8' ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"
         xmlns:ui="http://java.sun.com/jsf/facelets"
         xmlns:h="http://java.sun.com/jsf/html"
         xmlns:p="http://primefaces.org/ui"
         xmlns:f="http://java.sun.com/jsf/core"
         xmlns:c="http://java.sun.com/jsp/jstl/core">
       
        <h:head>
            <f:metadata>
                <f:event type="preRenderView" listener="#{showcaseEditController.checkShowcase(loginBean.loggedInUser)}" />
                <f:event type="preRenderView" listener="#{showcaseListProducer.init()}" />
            </f:metadata>
        </h:head>

        <body>

            <ui:composition template="./../META-INF/templates/template.xhtml">

                <ui:define name="sidebar column-left">
                    <ui:include src="./../META-INF/templates/userCenterNavigation.xhtml"/>
                </ui:define>
                <ui:define name="page-content">
                   
                    <c:forEach items="#{showcaseListProducer.companyList}" var="company">
                    <div style="padding: 10px ">
                            <div style="padding: 10px">
                                <h:form>
                                    <h:panelGrid columns="2">
                                            <h:outputText value="ShowcaseLink: " />
                                            <h:outputText value="http://www.zerrenda.de/register.xhtml?promotedBy=#{company.showcase.showcaseId}" />
                                        <h:outputText/>
                                        <h:outputText  value="#{company.companyName} + #{company.showcase.showcaseId}" />
                                    </h:panelGrid>
                                </h:form>
                            </div>
                        </div>  
                    </c:forEach>
                </ui:define>
            </ui:composition>
        </body>
    </html>
     
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. Rallenaldo
    Rallenaldo Mitglied
    Hat sich erledigt.

    Kann gelöscht werden
     
  4. Joose
    Joose Super-Moderator Mitarbeiter
    Verrate uns doch bitte die Lösung, es gibt häufiger solche Probleme und da wäre es sich er hilfreich wenn du deine postest.
    Danke! :)
     
  5. Rallenaldo
    Rallenaldo Mitglied
    Ich weiß nicht, ob es die Musterlösung ist, aber ich habe mir anstelle einer List<Company> eine List<Showcase> ausgeben lassen. Das war es im groben eigentlich.

    Ich habe quasi nur eine neue Liste erstellt und diese dann für die Ausgabe verwendet. Bin mir nicht sicher, ob das hilfreich für andere ist
     
Die Seite wird geladen...

Daten werden nicht aktualisiert aus Datenbank gelesen - Ähnliche Themen

TableView Daten werden nicht ausgegeben
TableView Daten werden nicht ausgegeben im Forum AWT, Swing, JavaFX & SWT
Datentypen werden nicht ordnungsgemäß umgewandelt
Datentypen werden nicht ordnungsgemäß umgewandelt im Forum Allgemeine Java-Themen
GUI Komponenten werden langsam bei größerer Datenmenge
GUI Komponenten werden langsam bei größerer Datenmenge im Forum AWT, Swing, JavaFX & SWT
Datenbanktreiber kann nicht geladen werden
Datenbanktreiber kann nicht geladen werden im Forum Datenbankprogrammierung
Warum werden für Datenbanktabellen Schemanamen festgelegt?
Warum werden für Datenbanktabellen Schemanamen festgelegt? im Forum Datenbankprogrammierung
Thema: Daten werden nicht aktualisiert aus Datenbank gelesen