phases JSF saute - Comment corriger cela?
Question
Je suis débogage d'une application JSF étrangère. Le problème est, que je soumets une forme, mais les valeurs ne sont pas reportés.
Avec une phase d'écoute, je peux voir, que le cycle de vie ne fonctionne pas complètement à travers, pour ainsi dire la phase 2 -5 saute: Après la phase de vue restauration, la phase de réponse de rendu est appelée directement. Je manque les valeurs, appliquer la validation, les actions du modèle de mise à jour et ainsi de suite.
Alors, cela pourrait être un problème de la poule et de l'œuf: 1. Les phases responsables ne sont pas appelées, de sorte que la nouvelle entrée de formulaire ne peut pas être reporté. 2. Le système ne reconnaît aucune nouvelle entrée et donc rend directement après la restauration de la vue.
J'ai vérifié qu'il n'y a pas d'appel de responseComplete () oder renderResponse ().
Je suis bloqué en quelque sorte. Toute idée de valider l'une des deux hypothèses? Ou comment déboguer en général? Est-ce que quelqu'un a un problème similaire?
Mise à jour
Je soupçonne que JSF ne connaît pas les demande postback et poignées cela comme une vue initiale . Cela expliquerait que je passe seulement la phase 1 et 6.
Comment puis-je vérifier, si JSF reconnaît comme non-visages demande ?
Comment puis-je vérifier s'il y a le lieu ArbreID dans la facesContext
actuelle.
La solution 2
trouvé la solution! Je suis désolé mais il était très spécifique à l'application, je suppose: La coutume StateManager pour JSF n'a pas été utilisable avec JSF 1.2. Cela a provoqué cette erreur étrange. Vous avez le StateManager fixe et tout a bien fonctionné. C'est amer et a coûté beaucoup de temps: - (
Merci pour votre aide quand même: -)
Autres conseils
Je cite une réponse que j'ai posté avant :
Chaque fois qu'un composant
UICommand
ne parvient pas à appeler l'action associée, vérifiez les points suivants:
- composants
UICommand
doivent être placés à l'intérieur d'un composantUIForm
(Par exempleh:form
).- Vous ne pouvez pas imbriquer plusieurs composants
UIForm
dans l'autre (Attention avec inclure des fichiers!).- Pas d'erreur de validation / conversion aurait dû être produite (utilisation
h:messages
pour obtenir tous).- Si les composants de
UICommand
sont placés à l'intérieur d'un composantUIData
, veiller à ce que la mêmeDataModel
(l'objet derrière le l'attributUIData
devalue
) est conservés.- Les attributs de
rendered
etdisabled
du composant et tous les composants parents ne devraient pas évaluer àfalse
lors appliquer demande phase de valeurs.- Assurez-vous qu'aucun
PhaseListener
ou toutEventListener
dans la la chaîne demande-réponse a changé la JSF cycle de vie pour sauter le Invoke phase d'action.- Assurez-vous qu'aucun
Filter
ouServlet
dans la même requête-réponse la chaîne a bloqué la demande fo laFacesServlet
en quelque sorte.
Comme dans votre cas particulier, les phases 2-5 sont été ignorées et que vous êtes certain (?) Qui est FacesContext#renderResponse()
pas été appelée, les causes 3, 6 et 7 peut être rayé de la liste. Les causes 4 et 5 peut probablement être égratigné aussi, selon la manière dont vous débogués les phases de JSF. Enquêter sur les autres causes. Mes cents sur la cause 2. Vérifiez si vous ne voyez pas <form><form></form></form>
dans la source HTML généré et backtrack ce dans la source JSF.