Gibt es eine Möglichkeit, die Postdaten selbst zu erhalten? Ich weiß, dass Spring das Binden von Post-Daten an Java-Objekte handhabt. Wie kann ich diese Daten angesichts zweier Felder, die ich verarbeiten möchte, erhalten?
Angenommen, mein Formular hatte zwei Felder:
<input type="text" name="value1" id="value1"/>
<input type="text" name="value2" id="value2"/>
Wie würde ich vorgehen, um diese Werte in meinem Controller abzurufen?
java
spring-mvc
Royhowie
quelle
quelle
Eine andere Antwort auf die genaue Frage des OP besteht darin, den
consumes
Inhaltstyp auf zu setzen"text/plain"
und dann einen@RequestBody String
Eingabeparameter zu deklarieren . Dadurch wird der Text der POST-Daten als deklarierteString
Variable übergeben (postPayload
im folgenden Beispiel).Dies setzt natürlich voraus, dass Ihre POST-Nutzdaten Textdaten sind (wie im OP angegeben).
Beispiel:
@RequestMapping(value = "/your/url/here", method = RequestMethod.POST, consumes = "text/plain") public ModelAndView someMethod(@RequestBody String postPayload) { // ... }
quelle
value1
undvalue2
, würde dies einen String für beide Werte erstellen? Dann müssten Sie die einzelnen Werte analysieren. Warum tun Sie das, wenn Sie jeden Wert einzeln angeben / erhalten können, wie in der akzeptierten Antwort?RequestMethod.POST
. Ich habe sogar hinzugefügt ,@CrossOrigin(origins = "*")
aber ich bekomme immer noch die gleiche Sache ... Sie wissen nicht , was los ist ... Ich habe die gleiche Signatur wie Ihre Antwort (außer dass verwendetsomeMethod
kehrt einString
in meinem Fall) ...Spring MVC wird auf der Servlet-API ausgeführt. Sie können also Folgendes verwenden
HttpServletRequest#getParameter()
:String value1 = request.getParameter("value1"); String value2 = request.getParameter("value2");
Das
HttpServletRequest
sollte Ihnen in Spring MVC bereits als eines der Methodenargumente derhandleRequest()
Methode zur Verfügung stehen.quelle
RequestMethod.POST
. Ich habe sogar hinzugefügt ,@CrossOrigin(origins = "*")
aber ich bekomme immer noch die gleiche Sache ... Sie wissen nicht , was los ist ... Ich habe die gleiche Signatur wie Ihre Antwort (außer dass verwendetsomeMethod
kehrt einString
in meinem Fall) ...