Frage

Ich bin Debuggen einer ausländischen JSF-Anwendung. Das Problem ist, dass ich ein Formular einreichen, aber die Werte werden nicht übernommen.

Mit einer Phase Zuhörern ich sehen kann, dass der Lebenszyklus läuft nicht vollständig durch, so zu sagen, es überspringt Phase 2 -5: Nach der Ansicht Phase wieder herzustellen, die Reaktionsphase übertragen wird direkt aufgerufen. Ich vermisse die gelten Werte, Validierung, Updatemodell Aktionen und so weiter.

Also, das könnte ein Huhn-und-Ei-Problem: 1. Die verantwortlichen Phasen werden nicht genannt, so dass die neue Form Eingang nicht über getragen werden kann. 2. Das System erkennt keinen neuen Eingang und daher macht direkt nach der Ansicht gestellt wird.

Ich habe, dass es keinen Aufruf von responseComplete () oder Render ().

ich irgendwie stecken. Jede Idee, eine der beiden Hypothesen zu validieren? Oder wie zu debuggen, dass im Allgemeinen? Hat jemand ein ähnliches Problem?


Update

Ich habe den Verdacht, dass JSF ist nicht bekannt, die Postbacks Anfrage und behandeln diese wie eine Startansicht . Das würde erklären, dass ich pass Phase nur 1 & 6.

Wie kann ich überprüfen, ob JSF erkennt dies als nicht-faces-Anfrage ?
Wie kann ich überprüfen, wenn es die entsprechenden treeID in dem aktuellen facesContext.

War es hilfreich?

Lösung 2

Gefunden die Lösung! Es tut mir leid, aber es war sehr anwendungsspezifische ich denke: Die benutzerdefinierte State für JSF war nicht verwendbar mit JSF 1.2. Dass dieser seltsamen Fehler verursacht hat. Haben Sie die State fixiert und alles hat gut funktioniert. Das ist bitter und viel Zeit kosten: - (

Danke für Ihre Hilfe trotzdem: -)

Andere Tipps

Ich zitiere aus einer Antwort, die ich geschrieben habe, bevor :

Wenn eine Komponente UICommand nicht die zugehörige Aktion aufzurufen, Überprüfen Sie Folgendes:

  1. UICommand Komponenten müssen innerhalb einer UIForm Komponente platziert werden (Z h:form).
  2. Sie kann nicht Nest mehr UIForm Komponenten ineinander (Vorsicht mit Dateien enthalten!).
  3. Keine Validierung / Konvertierungsfehler aufgetreten sein sollte (Einsatz h:messages bekommen sie alle).
  4. Wenn UICommand Komponenten innerhalb einer UIData Komponente angeordnet sind, sicherzustellen, dass genau das gleiche DataModel (das Objekt hinter dem UIData des value Attribut) ist erhalten.
  5. Die rendered und disabled Attribute des Bauteils und alle die Mutter Komponenten sollten nicht bewerten zu false während gelten Anforderungswerte Phase.
  6. Seien Sie sicher, dass kein PhaseListener oder jede EventListener in der Anfrage-Antwort-Kette hat sich das JSF Lebenszyklus der invoke überspringen Aktionsphase.
  7. Seien Sie sicher, dass keine Filter oder Servlet in der gleichen Anfrage-Antwort Kette hat die Anforderung fo die geblockte FacesServlet irgendwie.

Da in Ihrem speziellen Fall der Phasen 2-5 wurden ausgelassen, und dass Sie sind sie sicher, (?), Dass FacesContext#renderResponse() heißt nicht, die bewirkt, dass 3, 6 und 7 können aus der Liste zerkratzt werden. Das bewirkt, dass 4 und 5 kann wahrscheinlich auch zerkratzt werden, abhängig von der Art und Weise, wie Sie die JSF-Phasen korrigiert. Untersuchen Sie die anderen Ursachen. Mein Cent auf Grund 2. Überprüfen Sie, ob Sie in JSF Quelle siehe <form><form></form></form> in generierten HTML-Quelle und Rückzieher dies nicht.

scroll top