Ich werde verrückt und kann nicht verstehen, was das Problem ist:
Ich habe folgende Struktur:
%Vor%web.xml
%Vor%springMVC-servlet.xml
%Vor%Mein Controller:
%Vor%Ich habe kein Problem, zu /index.html
zu navigierenСсылка funktioniert perfekt.
aber wenn ich zu navigiere Ссылка Ich habe 404 Fehler.
%Vor%Ich möchte login.jsp nicht auf derselben Ebene wie index.jsp verschieben, aber warum habe ich dieses Problem?
HTTP 404 bedeutet, dass die Ressource nicht gefunden wird.
HTTP-Status 404 - /SpringMVC/login.jsp
Offenbar senden Sie eine HTTP-Anfrage /SpringMVC/login.jsp
, aber Ihre Controller-Methode ist an .html
gebunden, daher müssen Sie Ihre HTTP-Anfrage in /SpringMVC/login.html
Aufgrund des Namens (Login) ist Ihre Spring Security-Konfiguration möglicherweise nicht korrekt.
Ich füge das hier einfach hinzu, weil es mein 404-Problem gelöst hat. Es stellte sich heraus, dass mein Problem der url-mapping
-Wert in web.xml
war. Verwenden der Spring WebMVC-Version org.springframework:spring-webmvc:4.1.6.RELEASE
Ich habe Folgendes verwendet (was nicht funktioniert hat):
%Vor%Ich hätte den folgenden Wert verwenden sollen (was funktioniert):
%Vor%oder
%Vor%Referenz: Ссылка
Erstellen Sie einen Ordner unter WEB-INF "jsps" für alle Ihre Ansichten und unter "jsps" einen "Sicherheits" -Ordner für Ihren Fall. HINWEIS: Wenn Sie die JSP-Dateien in WEB-INF verschieben, können Sie den direkten Zugriff auf diese Dateien verhindern. Es wird für die Anwendungssicherheit benötigt. Denken Sie über eine Situation nach, in der Ihre JSPs persönliche Informationen über Ihren Kunden bereitstellen und der Zugriff von Ihrem Controller gewährt / überprüft werden muss. Wenn Ihre JSPs aus WEB-INF heraus existieren, sind sie mit einer Anfrage direkt auf sie verfügbar.
Konfigurieren Sie Ihren View Resolver wie folgt:
%Vor%
Als nächstes setzen Sie Ihre Login-JSPs in die "WEB-INF / jsps / security" und geben Sie "security / login" von Ihrer Login-Seite zurück.
Nun sucht der View Resolver nach den Views unter "WEB-INF / jsps". Da Ihre Methode "security / login" zurückgibt, erwartet der View Resolver ein Verzeichnis unter jsps namens "security" und darunter eine JSP-Datei namens "login.jsp" (suffix = jsp)
Ich vermute, dass ModelAndView mv = new ModelAndView("/security/login");
dort ist, wo das Problem liegt. Stellen Sie sicher, dass Sie in Ihrem Stammverzeichnis einen Ordner "security" haben, der eine login.jsp-Datei enthält. Oder versuchen Sie, den Sicherheitsordner in WebContent zu verschieben.
Geben Sie den contextConfigLocation-Init-Parameter Ihres DispatcherServlet
an %Vor%Ich verwende Spring MVC mit Eclipse und einem MacOS X-System und habe einen 404-Fehler festgestellt, wenn der Controller den korrekten jsp-Namen zurückgibt. Ich habe später herausgefunden, dass die problematische jsp-Datei kein x (Ausführung) direkt im Dateisystem hat. Ich dann 'chmod + x some.jsp' und das Problem ist gelöst.
Hinzufügen dieser Ans hier für den Fall, dass jemand anderes das gleiche Problem hat. Meine App funktionierte früher gut, dann habe ich die Spring-Version aktualisiert und dabei auch die Spring-Security-Version aktualisiert. Als ich versuchte, auf meine Login-HTML-Seite zuzugreifen, stand ich vor diesem Problem. Ich hatte alle notwendigen Konfigurationen Änderungen wegen der Änderung der Feder-Sicherheits-Version von 3 bis 4 gemacht. Ich habe dieser Link und es war sehr hilfreich.
Ich hatte dieses Problem aufgrund der folgenden Konfiguration in meiner Datei web-servlet.xml
%Vor% Es hat funktioniert, nachdem ich beide Standortwerte in "/app/"
geändert habe. Es sieht so aus, als ob eine neuere Version von spring die gesamte Zeichenfolge abgleicht oder prüft, ob der angeforderte Speicherort mit dem oben konfigurierten Standortwert beginnt.
Ich habe den folgenden Code in org.springframework.web.servlet.resource.PathResourceResolver gefunden:
%Vor%Die zweite if-Bedingung wurde in meinem Fall auf "false" und damit auf die 404-HTTP-Antwort
ausgewertetNoch ein Tipp, wenn Sie mit einem solchen Fehler konfrontiert werden, versuchen Sie, das höchste Niveau der Springframe-Protokollierung zu aktivieren. Sie können den Fehlergrund von dort kennen lernen.
Diese Antwort kann für die obige Frage veraltet sein, aber es wird anderen helfen, die gerade mit dem Frühling anfangen. Ich hatte auch Probleme mit 404 WEB-INF / welcome.jsp Seite nicht gefunden Fehler.
Hier ist Problem mit ModelAndView Import
Ersetzen
import org.springframework.web.servlet.ModelAndView;
Mit
%Vor%Tags und Links java spring jsp spring-mvc servlets