/ / Sollte JSF nicht gerenderte Komponenten beim erneuten Rendern von Ajax verarbeiten? - jsf

Soll JSF nicht gerenderte Komponenten bei Ajax-Rendering verarbeiten? - jsf

Meine Seite verfügt über Ajax-Funktionen zum Ein- / Ausblenden. Laden Sie während der ersten Seite meine Bean-Methoden, die sich in einem nicht gerenderten befinden <f:subview> oder <h:panelGroup> werden nicht gerufen. Beim erneuten Rendern der @form Mit Ajax werden meine Bean-Methoden aufgerufen, obwohl die relevanten Unteransichten nicht gerendert werden. Sollte das passieren? (Ich benutze JSF 2.2)

Antworten:

0 für die Antwort № 1

Dies ist das erwartete Verhalten gemäß meinem obigen Kommentar. Leider kommt es mit etwas hässlichem Verhalten.

Wenn Sie ein Objekt haben, das bei der Verwendung der Liste etwas bewirkt, funktioniert es bei Ihrer ersten Anfrage einwandfrei. Auch wenn Sie Ihre Vorkehrungen getroffen haben, sagen Sie, indem Sie etwas mit laden f:event Dies wird Sie bei der folgenden AJAX-Anfrage nicht retten.

Beispiel: Wenn Sie JPA für jede Bean verwenden, die für den Bereich der Anforderung verwaltet wird, und diese Bean eine verzögerte Auflistung hat, die nicht gerendert wird, führt dies zu Folgendem:

Anforderung 1: Nicht gerenderte Komponenten werden nicht berührt, d. H. Lazy Collections werden nicht initialisiert

Anforderung 2 (Ajax): JSF versucht, die vollständige Ansicht wiederherzustellen, indem es Ihre nicht geladene Lazy Collection aufruft, was zu einer Ausnahme führt.