Ein Klick auf h: commandLink verursacht Uncaught ReferenceError: mojarra ist nicht definiert

8

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:

%Vor%

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.

    
Ionut 12.02.2012, 10:23
quelle

2 Antworten

5

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

ist %Vor%

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,

zu öffnen
  

Ссылка

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%     
BalusC 13.02.2012, 15:32
quelle
1

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.)

    
burna 12.02.2012 16:07
quelle