Ich bin mir bewusst dieser Beitrag und ich habe es überprüft alle Möglichkeiten dort.
Ich verwende JSF 2.0 mit Mojarra-Implementierung auf Glassfish 3.
Ich versuche, zwei einfache <h:commandLink>
-Tags zu verwenden, um die Anwendungssprache zu ändern.
Dies ist die .xhtml
Seite:
Dies ist der HTML-Code:
%Vor%
Beim Drücken eines BefehlsLink passiert überhaupt nichts. Es wird keine Anfrage an den Server gesendet, und folgender Java Script-Fehler wird ausgelöst:
mojarra ist nicht definiert
Die Bean-Methoden werden korrekt aufgerufen und funktionieren im Rest der Anwendung einwandfrei.
Die Quell- und generierte HTML-Ausgabe sieht gut aus, Sie haben dort ein <h:head>
in der JSF-Quelle (sonst konnte JSF keine CSS / JS-Dateien automatisch einschließen), und das javax.faces:jsf.js
-Skript ist in vorhanden die HTML-Ausgabe.
Sie sagten, Sie haben einen JS-Fehler, dass mojarra
nicht definiert ist. Das kann nur bedeuten, dass das folgende automatisch generierte Skript
hat keine gültige Antwort ergeben. Das kann wiederum nur bedeuten, dass Sie eine Filter
haben, die auf /*
oder *.xhtml
abgebildet ist, was die Ressourcenanforderung jsf.js
in gewisser Weise einschränkt. Vielleicht ein selbst erstellter Authentifizierungsfilter, der seine Aufgabe nicht richtig erfüllt. Versuchen Sie,
in Ihrem Browser, um zu sehen, was tatsächlich abgerufen wurde (oder verwenden Sie die Webentwicklungswerkzeuge, um die Antwort zu überprüfen). Wenn es in der Tat nicht die richtige Antwort ist und das Problem tatsächlich in Filter
ist, dann müssen Sie es vermutlich so umschreiben, dass es die Kette fortsetzen sollte, wenn der Anfrage-URI mit ResourceHandler.RESOURCE_IDENTIFIER
.
z. B.
%Vor%Versuche zu beobachten, was in Firebug oder etwas Ähnlichem passiert, um zu sehen, ob es tatsächlich eine Serverkommunikation gibt. Und da es sich um einen Befehls-Link handelt, schauen Sie, ob auf der Seite JavaScript-Fehler sind.
Sie sagen, Sie erhalten keine INFO-Protokolle, daher glaube ich, dass die Anfrage nicht einmal zu Ihrer Anwendung gelangt.
(Ich sehe kein abschließendes HTML-Tag in Ihrer xhtml-Datei, vielleicht haben Sie es gerade nicht eingefügt.)
Tags und Links javascript jsf undefined mojarra commandlink