Spring MVC - HTTP-status-code 400 (Bad Request) für fehlende Feld, welches definiert ist als nicht erforderlich

Ich habe Spring-MVC-Anwendung mit dieser controller-Methode.

@RequestMapping(value = "/add", method = RequestMethod.POST)
public String addNumber(@RequestParam(value="number", required=false) Long number) {
   ...
   return "redirect:/showAll/";
}

In meiner JSP habe ich eine standard-HTML-Formular, das ist ein posting Wert mit dem Namen "Nummer", um die controller-Methode vor. Wenn ich allerdings weglassen, wird der Wert (geben Sie nichts in das Textfeld) und POST die Daten an den controller, bevor Sie die controller-Methode aufgerufen wird, mein browser zeigt

HTTP Status 400 - Required Long parameter 'number' is not present

obwohl der controller-Methode die annotation definiert klar die "Nummer"-parameter als nicht erforderlich.

Hat jemand eine Ungefähre Vorstellung von dem, was könnte Los sein?

Danke.

PS: Ausnahme, die geworfen wird, ist wie folgt:

org.springframework.web.bind.MissingServletRequestParameterException: Required Long parameter 'number' is not present

EDIT: Dies ist eine Feder 3.2.3.RELEASE-bug ( siehe hier). Mit der version 3.1.4.RELEASE ich haben dieses problem nicht mehr.

Es ist zu sagen, dass post-Anforderung nicht enthalten-name-parameter. Cross-check mit firebug fire fox.
Sorry, das ist ein Tippfehler übernommen aus meinem real-world-test app. Es sollte "Anzahl", wie es in den (bearbeitet) Beispiel oben jetzt.
Es ist seltsam. Ich habe gerade getestet mit 3.2.0.RELEASE und 3.2.3.RELEASE und in beiden Fällen wird Ihr code wie erwartet funktioniert.
In der Tat, das ist seltsam.

InformationsquelleAutor synRG | 2013-07-25

Schreibe einen Kommentar