Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe mir das im Titel benannte Buch von Markus Schießer und Martin Schmollinger gekauft, um grundlegende Kenntnisse der JAVA EE 7, hauptsächlich Java Server Faces zu erlangen.
Bislang ein tolles Lehrbuch, aber beim Kapitel 4.10.4 bekomme ich die Aufgabe nicht gelöst.
Kennt jemand das Buch und hat bereits die Lösung für die Aufgabe "Auslagerung der Eigenschaften des Spendenformulars" ? Es würde mir weiterhelfen, denn derzeit habe ich einen Blackout !
Was ist denn genau deine Frage? Ich sehe da keine Aufgabe im eigentlich Sinne ... dort wird ja Schritt für Schritt exakt vorgekaut, was man machen soll. Was ist unklar?
Hallo,
ich habe alles durchgeführt, wie gefordert und alles funktioniert. Jetzt kommt eine Aufgabe, zu Vereinfachungszwecken die Attribute textColor und bgColor in einer neuen Class FormConfig mit Setter- und Getter-Methoden zu erzeugen und in FormDonationController zu instanziieren.
Das habe ich getan. Jetzt habe ich alles probiert, die Variablen mit formConfig.getBgColor und formConfig.getTextColor in der Methode getURL zu hinterlegen, um später mit dem Facelet editDonationForm.xhtml in den beiden ColorPickern zu bedienen.
Leider aktualisieren die ColorPicker nicht, wie gefordert, die TextArea url.
Meine konkrete Frage: Wie muss ich meine neue Klasse FormConfig in EditDonationFormController instanziieren und wie rufe ich die Inhalte der private String textColor und bgColor in dieser neuen Klasse so ab, dass sie über das Facelet bedient werden können?
Wie muss ich das Facelet editDonationForm.xhtml verändern.
Wenn ich einmal den Weg beschrieben bekomme, dann werde ich es wohl wieder verstehen.
Vielen Dank.
Gruß Halo
Jetzt kommt eine Aufgabe, zu Vereinfachungszwecken die Attribute textColor und bgColor in einer neuen Class FormConfig mit Setter- und Getter-Methoden zu erzeugen und in FormDonationController zu instanziieren.
(...)
Das habe ich getan.
Da ist nichts magisches. Einfach per new. Du könntest auch per Dependency Injection mit Hilfe einer CDI Factory eine Instanz anfordern, aber das schießt hier übers Ziel hinaus.
und wie rufe ich die Inhalte der private String textColor und bgColor in dieser neuen Klasse so ab, dass sie über das Facelet bedient werden können?
Vielen Dank für die Antwort. Ich habe das Problem gelöst bekommen!
Es hing an dem new. Wenn man lange raus ist aus der Entwicklung, sollte man vielleicht nicht mit Java EE wieder starten.
Nach der Instanziierung der Klasse FormConfig habe ich den Code der Klasse editDonationFormController wie folgt verändert:
Das Facelet editDonationForm.xhtml wurde überhaupt nicht verändert. Beim Drücken auf den Button URL aktualisieren wird die TextArea auch aktualisiert.
Dennoch habe ich eine Blockade! Woher weiß die EL, dass sich hinter '#{editDonationFormController.bgColor}" das private Attribut bgColor aus der Nachbarklasse FormConfig "gemeint" ist.
Woher weiß die EL, dass sich hinter '#{editDonationFormController.bgColor}" das private Attribut bgColor aus der Nachbarklasse FormConfig "gemeint" ist.
Gar nicht.
Es wird der getter public String getBgColor() {...} aus deiner Backing Bean EditDonationFormController aufgerufen. Das war so auch sicherlich nicht gefragt. Die getter und setter für die Felder, die nun in deiner Klasse FormConfig sind, sollten aus deiner Backing Bean verschwinden. Dort hast du dann nur öffentliche getter und setter für das Feld vom Typ FormConfig. Der Zugriff darauf in der EL sieht dann so aus, wie ich in Beitrag #4 ja schon geschrieben habe.
Das ist übrigens keine Verletzung von Demeters' Law, da FormCondig kein Objekt in diesem Sinne ist, sondern eine Datenstruktur.