JSF Aufruf des Value Attributes trotz rendered = false

DanielS

Mitglied
Guten Tag,

Ich habe folgende Konstellation:
Ich habe ein Element, das innerhalb eines anderen Elementes liegt (<rich:list> innerhalb <h😛anelGroup>). Die PanelGroup hat rendered=false. Trotzdem wird das value Attribut der rich:list aufgerufen.
Hier stürzt die Anwendung nun ab, da auf das Value Attribut nur zugegriffen werden darf, wenn auch ein User eingeloggt ist. Das wird dadurch sichergestellt, dass die panelGroup ansonsten nicht gerendert wird.

Das Problem ist in diesem Fall nur exemplarisch und tritt an vielen Stellen auf, so dass es nicht praktikabel ist, den Login in jeder Javafunktion zu überprüfen. Ist es denn möglich, JSF dazu zu zwingen, das Value Attribut nicht aufzurufen wenn die Komponente nicht gerendered wird?

Viele Grüße
Daniel
 
Zuletzt bearbeitet von einem Moderator:
The getter of Attributes are called but the components are not rendered.

Answer of Ed Burns:
This is because the tree is always built regardless of whether or not it is rendered.

In der RESTOTE_VIEW (1.Phase) wird der Komponentenbaum erstellt/wiederhergestellt (alle getter aufgerufen). Das rendered Attribute wird erst in den nachfolgenden Phasen ausgewertet.

Möglichkeit wäre JSTL <c:if> verwenden was aber nicht im Zusammenhang mit dem @ViewScope funktioniert.

Greetz
 

Neue Themen


Zurück
Oben