Hallo zusammen,
ich habe nun endlich auf JSF 2.2 umgestellt.
Insbesondere auch aus dem Grund um @ViewScoped nutzen zu können.
Nun habe ich allerdings auch schon die erste Schwierigkeiten:
Ich habe zwei Seiten:
a) liste.xhtml
b) edit.xhtml
In der liste.xhtml habe ich natürlich Objekte in einer Liste. Über eine Methode rufe ich dann die edit.xhtml - Seite auf.
Ich habe zwei Beans:
a) InterestGeneralListController => Hier ist die Methode zum Aufrufen der edit.xhtml- Seite mit folgender Methode:
b) InterestGeneralEditController => dort wird dann editiert oder gespeichert
Das "InterestGeneral" übergebe ich in der Liste, welches dann zudem auch mein Link zur Edit-Seite ist.
Die Methode doEditInterestGeneral(interestGeneral) in InterestGeneralEditController sind so aus:
Mode ist ein Enum, das mit je nachdem Add oder Edit zuweist.
Mein Problem ist nun:
Wenn ich nun InterestGeneral editieren möchte, ist interestGeneral immer NULL.
Ich bin mit dem Debugger drüber, beim Klicken auf den Link zum Editieren wird alles richtig gesetzt. Wenn ich nun zur anderen View (edit.xhtml) wechsle, ist interestGeneral wieder NULL.
Klar kann ich das mit SessionScoped umgehen, aber das ist nicht Sinn der Sache.
Wie kann ich das ganze anderst machen?
ich habe nun endlich auf JSF 2.2 umgestellt.
Insbesondere auch aus dem Grund um @ViewScoped nutzen zu können.
Nun habe ich allerdings auch schon die erste Schwierigkeiten:
Ich habe zwei Seiten:
a) liste.xhtml
b) edit.xhtml
In der liste.xhtml habe ich natürlich Objekte in einer Liste. Über eine Methode rufe ich dann die edit.xhtml - Seite auf.
Ich habe zwei Beans:
a) InterestGeneralListController => Hier ist die Methode zum Aufrufen der edit.xhtml- Seite mit folgender Methode:
b) InterestGeneralEditController => dort wird dann editiert oder gespeichert
Java:
public String doEditInterestGeneral(InterestGeneral interestGeneral) {
interestGeneralEditController.setInterestGeneralToEdit(Mode.EDIT,
interestGeneral);
return Pages.EDIT;
}
Das "InterestGeneral" übergebe ich in der Liste, welches dann zudem auch mein Link zur Edit-Seite ist.
Java:
<p:commandLink ajax="false"
action="#{interestGeneralListController.doEditInterestGeneral(interestGeneral)}">
<h:outputText value="#{interestGeneral.contentCategory.name}" />
</p:commandLink>
Die Methode doEditInterestGeneral(interestGeneral) in InterestGeneralEditController sind so aus:
Java:
public void setInterestGeneralToEdit(Mode mode,
InterestGeneral interestGeneral) {
this.interestGeneral = interestGeneral;
this.mode = mode;
}
Mode ist ein Enum, das mit je nachdem Add oder Edit zuweist.
Mein Problem ist nun:
Wenn ich nun InterestGeneral editieren möchte, ist interestGeneral immer NULL.
Ich bin mit dem Debugger drüber, beim Klicken auf den Link zum Editieren wird alles richtig gesetzt. Wenn ich nun zur anderen View (edit.xhtml) wechsle, ist interestGeneral wieder NULL.
Klar kann ich das mit SessionScoped umgehen, aber das ist nicht Sinn der Sache.
Wie kann ich das ganze anderst machen?