suchen
HeimJavajavaLernprogrammLösung des Problems, dass Spring MVC den Wert von Parametern nicht normal (mit Code) abrufen kann

Der Inhalt dieses Artikels befasst sich mit der Lösung des Problems, dass Spring MVC den Parameterwert nicht normal abrufen kann. Ich hoffe, dass er hilfreich ist Du. .

Ich bin kürzlich während der Entwicklung auf ein sehr seltsames Problem gestoßen. Bei der Verwendung des Spring MVC-Frameworks in Tomcat8 konnten die Methodenparameter im Controller nicht normal abgerufen werden. Es wurde durch Ändern der Tomcat-Version behoben 7,0.

Zeichnen Sie den folgenden Lösungsprozess auf, zuerst das obige Bild:

Das Projekt übernimmt ssm-Architektur, Der Wert des Parameters Passwort kann hier nicht abgerufen werden. Ich habe im Internet nach relevanten Informationen gesucht und die folgenden Lösungen gefunden, aber keine davon hat funktioniert:

1 Verwenden Sie die Annotation @RequestParam

Nach dem Hinzufügen der RequestParam-Anmerkung kann der Wert von „password“ immer noch nicht abgerufen werden. Der Fehler bedeutet, dass der Parameter „password“ fehlt Parameter wird eindeutig übergeben. Warum wird immer noch gesagt, dass der Parameter fehlt? Könnte es sein, dass die von mir übergebenen Parameter nicht erkannt wurden? Derzeit wird davon ausgegangen, dass möglicherweise ein Problem mit der Methode zur Parameterübergabe vorliegt. Die Methode zur Übergabe von Parametern wurde geändert, indem der Wert des Kennworts an das Ende der URL angehängt wird und Parameter genau wie bei einer GET-Anfrage übergeben werden. Aus diesem Grund kann der Wert des Parameters tatsächlich empfangen werden. Mit dieser Methode zur Parameterübergabe kann der Wert des Parameters jedoch empfangen werden, ohne die Annotation „RequestParam“ hinzuzufügen. Obwohl diese Methode den Wert des empfangenen Parameters empfangen kann, kann ich die Parameterübergabemethode von POST nicht ausstehen, also suche ich nach der nächsten Methode

2. Verwenden @RequestBody-Annotation

RequestBody bedeutet wörtlich: Der Text der Anfrage. Wenn ich die Anfrage stelle, füge ich die Parameter in den Text ein und übergebe sie, wenn ich das sehe Anmerkung: Wie erwartet konnte ich es kaum erwarten, Tomcat neu zu starten, und rief es dann mit Postman auf. Diesmal wurde der Haltepunkt nicht eingegeben und eine Ausnahme wurde direkt gemeldet:

org.springframework. http.converter.HttpMessageNotReadableException: Erforderlicher Anfragetext fehlt: public boolean com.scdq.manager.controller.SystemController.login(java.lang.String)

Die allgemeine Bedeutung der Ausnahme ist, dass der notwendige Anfragetext Bei der Abfrage relevanter Informationen haben wir festgestellt, dass der RequestBody nicht so sein kann. Zur Verwendung müssen Sie eine Klasse erstellen, relevante Parameter in der Klasse definieren und diese Klasse dann als Parametertyp der RequestBody-Annotation verwenden

Auf diese Weise geänderter Code, Tomcat erneut starten, Postman zum Aufrufen verwenden und dann erneut eine Ausnahme melden:

org.springframework.web.HttpMediaTypeNotSupportedException: Inhaltstyp „application/x-www-form-urlencoded“ wird nicht unterstützt

Die allgemeine Bedeutung der Ausnahme ist, dass der Inhaltstyp application/x-www-form-urlencoded ist. Im Allgemeinen werden die über das Formular übermittelten Daten standardmäßig verwendet Ich vermute, dass dies der Grund für die RequestBody-Annotation ist, also habe ich sie geändert: Verwenden Sie das JSON-Format, um Daten zu übergeben

Mit dieser Parameterübergabemethode kann der Wert des Parameters tatsächlich empfangen werden, aber die Methode zum Empfangen von Parametern und die Methode zur Übergabe von Parametern sind kompliziert geworden. Ich habe dieses Projekt von der Firma nach Hause kopiert und weitergeschrieben. Als ich in der Firma war, war alles in Ordnung, aber als ich nach Hause zurückkehrte, war ich verwirrt. Warum ist also etwas schiefgegangen, als ich nach Hause kam? Da die Codes gleich sind, die Laufergebnisse jedoch unterschiedlich sind, bedeutet dies nur, dass sich die Laufumgebung geändert hat. Wo genau ist die Umgebung anders? Wenn ein solches Problem auftritt, berücksichtigen Sie zunächst die Struktur der Datenbank. Da die Datenbankversion des Heimcomputers jedoch mit der des Firmencomputers identisch ist und die Daten direkt vom Unternehmen kopiert werden, ist die Datenbank direkt ausgeschlossen. Ganz zu schweigen davon, dass es ohne die Parameter und den Schritt des Zugriffs auf die Datenbank noch weniger wahrscheinlich mit der Datenbank zusammenhängt, sodass die Ursache der Datenbank direkt ausgeschlossen werden kann. Da das Projekt von Maven erstellt wird, werden die relevanten JAR-Pakete automatisch von Maven heruntergeladen. Daher frage ich mich, ob es ein Problem mit den JAR-Paketen gibt, die Maven automatisch herunterlädt. Löschen Sie dann alle JAR-Pakete im lokalen Warehouse und lassen Sie Maven erneut starten Ich habe es heruntergeladen und mehrmals wiederholt, aber das Problem bestand immer noch. Mir blieb nichts anderes übrig, als die Ursache von Maven vorübergehend auszuschließen. Am Ende fielen mir keine anderen Gründe ein, also begann ich an der Ursache von Tomcat zu zweifeln. Der Tomcat des Unternehmens ist Version 7.0, und der Tomcat zu Hause ist Version 8.0. Obwohl die beiden Tomcat-Versionen inkonsistent sind Ich denke nicht unbewusst, dass es die Tomcat-Version sein muss. Schließlich denke ich unbewusst, dass 8.0 ein Funktionsupgrade nach 7.0 sein muss. Obwohl ich so dachte, ging ich immer noch mit der Mentalität, ein totes Pferd und ein lebender Arzt zu sein, zum Test. Ich lud die 7.0-Version des komprimierten Pakets von der offiziellen Tomcat-Website herunter, konfigurierte dann die entsprechende Umgebung und rief sie mit Postman auf . Das Ergebnis war so unerwartet. ! ! ! Liegt es wirklich an der Tomcat-Version? Das fühlt sich zu langweilig an. . . . Es scheint, dass es keine gute Sache ist, blind nach höheren Versionen zu streben [Verwandte Empfehlungen: Java-Tutorial]

Das obige ist der detaillierte Inhalt vonLösung des Problems, dass Spring MVC den Wert von Parametern nicht normal (mit Code) abrufen kann. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Dieser Artikel ist reproduziert unter:segmentfault. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Mar 17, 2025 pm 05:46 PM

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Mar 17, 2025 pm 05:45 PM

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Mar 17, 2025 pm 05:44 PM

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Mar 17, 2025 pm 05:43 PM

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Mar 17, 2025 pm 05:35 PM

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion