Ich versuche ein Webprojekt von Jersey nach Spring MVC 3.0 zu migrieren. Der Prozess war bis zu dem Moment, in dem ich anfing, die Controller zu migrieren, die URLs mit Punktnotationen handhaben sollten, sehr einfach: "/ myApp / resources / create / root.subFolder1 ". Spring MVC scheint den ".subFolder1" -Teil schamlos aus der URL zu entfernen, was tief im Framework-Code passiert (siehe AbstractUrlHandlerMapping -Klasse)
%Vor%Also wird meine Controller-Methode mit root path -Parameter aufgerufen, nicht root2Folder1
Ich würde wirklich gerne einen Weg finden, dieses Verhalten anzupassen. Irgendwelche Ratschläge?
PS. Die Anforderung besteht darin, die vorhandene URL-Struktur beizubehalten, d. H. Problemumgehungen wie das Wechseln zu Abfrageparametern "/ myApp / resources / create / ? Path = root-folder1 " kann ich nicht berücksichtigen.
PS. Meine Spring-Konfiguration sieht aus wie
%Vor%Versuchen Sie Folgendes:
%Vor%Dies sollte dazu führen, dass Spring nicht versucht, Erweiterungen zu analysieren.
Siehe auch: Spring MVC @PathVariable wird abgeschnitten
Und: Spring Dokumentation
Mögliche Konfigurationsdateien:
web.xml (wo ich das Servlet-Zeug eingestellt habe)
%Vor%Und dann in WEB / INF / spring / mvc-config.xml habe ich so etwas:
%Vor%Das war eine Schlampe. Ein Mann in unserem Team hat es am Wochenende zum Laufen gebracht. Wir würden mit Unterstrich gehen, aber er hat es verstanden. Er entfernte @Controller von den Controller-Klassenattributen und ließ @RequestMapping für die Klasse leer. Auf die öffentlichen Methoden für Http get und put hat er "/2.0/" zum @RequestMapping hinzugefügt. Beispiel unten.
%Vor%Viel Glück für alle. Dieses Problem hat gesaugt.
Ich habe fast dasselbe getan wie Robert Beltran, aber ich habe @Controller Annotation für die Klasse hinterlassen. Wichtig ist, "/1.0/" in die Methode @RequestMapping für die Methoden zu schreiben, nicht in die Annotation der Klasse.
Mein Beispiel:
Die obige Antwort sollte korrigieren, aber stellen Sie sicher, dass Sie <mvc:annotation-driven/>
aus Ihrer XML-Konfiguration entfernen. Andernfalls wird die Bean-Definition von dem einen Teil des Annotation-Driven-Tags überschrieben.
Siehe Java docs und die Quellcode für alle Konfigurationen, die Sie verpassen, wenn dieses Convenience-Tag entfernt wird.
Tags und Links java spring-mvc