Schön, Sie kennenzulernen, das ist NekoSarada1101. Dies ist Qiitas erster Beitrag. Ich studiere Java und Servlets an einer Berufsschule. Ich studiere derzeit das Spring-Framework selbst und werde einen Artikel über einen Fehler veröffentlichen, dessen Behebung lange gedauert hat.
Ich habe den folgenden Controller definiert, um die Eingabe auf dem Anmeldebildschirm der Webanwendung zu überprüfen, die ich für das Studium von Spring entwickle.
@PostMapping("/auth")
public String postLogin(@ModelAttribute @Validated LoginForm form, Model model, BindingResult result) {
if (result.hasErrors()) {
return "login";
}
User user = userService.login(form.getId(), form.getPassword());
model.addAttribute("user", user);
return "redirect:/menu";
}
Wenn bei der Eingabe kein Problem auftritt, kehren Sie zum nächsten Bildschirm zurück. Wenn dies der Fall ist, kehren Sie zum Anmeldebildschirm zurück. Wenn ich eine Anfrage an diesen Controller sende ...
Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Tue Apr 28 14:36:33 JST 2020
There was an unexpected error (type=Bad Request, status=400).
Der obige Fehler wurde auf dem Bildschirm angezeigt.
Die Ursache war die Reihenfolge der Controller-Argumente. Es scheint, dass das BindingResult unmittelbar nach dem zu validierenden Form-Objekt definiert werden muss.
@PostMapping("/auth")
public String postLogin(@ModelAttribute @Validated LoginForm form, BindingResult result, Model model) {
if (result.hasErrors()) {
return "login";
}
User user = userService.login(form.getId(), form.getPassword());
model.addAttribute("user", user);
return "redirect:/menu";
}
Es muss in der Reihenfolge "hoge (Form, BindingResult, Model)" wie folgt sein.
Es gibt kein Fehlerprotokoll auf der Konsole, und dies ist das erste Mal, dass aufgrund der Reihenfolge der Argumente ein Fehler aufgetreten ist. Ich hatte keine Ahnung, was das Problem war, und es dauerte lange, bis ich es gelöst hatte.
Wie ich zu Beginn schrieb, bin ich im ersten Beitrag nicht an diese Ausgaben gewöhnt. Wenn Sie also Fehler oder Ratschläge haben, wäre ich Ihnen dankbar, wenn Sie mich freundlich informieren könnten.
Recommended Posts