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:
Showcase.xhtml
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:
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>