Devrait PARTIAL_STATE_SAVING être définie à false?
Il semble qu'aujourd'hui (avril 2012), les deux MyFaces et Mojarra du JSF 2.1 implémentations ont des défauts autour partielle de l'etat d'économie et que PARTIAL_STATE_SAVING doit être définie sur false.
Est-ce vrai?
MyFaces code est ok. Il n'y a pas ouvert les problèmes liés au service à l'heure actuelle (2012-AVRIL). Tout fonctionne comme prévu.
OriginalL'auteur BestPractices | 2012-04-26
Vous devez vous connecter pour publier un commentaire.
Seulement lorsque vous rencontrez un défaut généralisé liées à la partielle de l'etat de l'épargne dans votre webapp qui peut vraiment pas être résolu/workarounded dans l'autre sens. Partielle sur l'état de la sauvegarde à savoir les principaux avantages de performance globale et de l'utilisation de la mémoire. Voir aussi Pourquoi JSF enregistre l'état des composants de l'INTERFACE utilisateur sur le serveur?
Je ne peux pas 100% fiable parler de MyFaces, mais dans Mojarra la cause des problèmes autour partielle de l'etat d'économie se manifeste lorsque vous êtes à la liaison de tout attribut d'une balise gestionnaire (tag gestionnaires sont recognizeable par le manque de la
rendered
l'attribut de la balise tels que les balises JSTL) à une vue étendue de haricots, ou lorsque vous êtes à la liaison de laid
oubinding
attribut d'un composant JSF à une vue étendue de haricot (ces attributs sont résolus lors de la construction/restauration de la vue).Ce problème est provoqué par un poulet-oeuf question, telle que décrite dans JSF question 1492 et JSF éd. 787: avec partielle de l'etat d'économie d'activé, la vue étendue de haricots ont été stockés dans la vue partielle de l'état. Donc pour extraire la vue de l'étendue des haricots, de la vue partielle de l'etat doit être restaurée. Pendant la restauration (bâtiment) le point de vue, la EL dans tous ces attributs seront évaluées. Cependant, comme il n'y a pas de vue l'étendue de haricots exemple disponible à ce moment, une nouvelle instance est créée. Ce sera néanmoins l'ensemble de ses propriétés par défaut! Après la restauration de la vue et d'obtenir le point de vue original d'étendue de haricots, ils seront remis dans la portée de vue, overridding l' (temporaire) des instances créées au cours de la restauration de la vue. Mais le EL expressions de ces attributs ont déjà été évaluées en fonction de complètement différent de l'instance et ne peut pas être restaurée.
Ce poulet-oeuf problème est résolu depuis Mojarra 2.1.18 et 2.2.0 par le stockage de vue de l'étendue des haricots dans la session. Si vous ne pouvez pas mettre à niveau pour une raison quelconque, cela peut en effet être résolu par la désactivation de la partielle de l'etat épargne par la mise en
javax.faces.PARTIAL_STATE_SAVING
àfalse
. Une alternative est de pas lier ladite attributs d'une vue étendue de haricot à tous, mais chercher une autre solution.Vous pouvez également définir la
javax.faces.FULL_STATE_SAVING_VIEW_IDS
à la place. Cela vous permet de spécifier une liste séparée par des virgules de tous les Id de vue pour lequel partielle de l'etat d'économie doit être désactivée:Cela vous permet de bénéficier d'partielle de l'etat de sauver autant que possible et de le désactiver pour qu'un sous-ensemble de points de vue sur la partielle de l'etat d'économie liées à des problèmes peuvent vraiment pas être fixe.
Voir aussi:
@ViewScoped
n'en tag gestionnairesquel est le format pour afficher les Identifiants? et que devrait-il commencer?
une "identification" est juste l'absolu de contenu web chemin d'accès au fichier physique. L'exemple dans ma réponse de points de deux fichiers:
/some.xhtml
et/other.xhtml
.OriginalL'auteur BalusC