Uczę się Spring, analizując przykładowe aplikacje, a następnie dodając kod tu i tam, aby przetestować teorie, które rozwijam podczas rozbiór. Ja otrzymuję następujący komunikat o błędzie podczas testowania kodu, że dodaje się do stosowania wiosną:Argument Errors/BindingResult powinien zostać zadeklarowany natychmiast po atrybucie modelu, argumentach @RequestBody lub @RequestPart.
An Errors/BindingResult argument is expected to be declared immediately after the
model attribute, the @RequestBody or the @RequestPart arguments to which they apply
Metoda do którego odnosi się komunikat o błędzie:
@RequestMapping(value = "/catowners", method = RequestMethod.GET)
public String findOwnersOfPetType(Integer typeID, BindingResult result, Map<String, Object> model) {
// find owners of a specific type of pet
typeID = 1;//this is just a placeholder
Collection<Owner> results = this.clinicService.findOwnerByPetType(typeID);
model.put("selections", results);
return "owners/catowners";
}
Ten błąd został wywołany kiedy próbował załadować wzorzec URL/cateers w przeglądarce internetowej. Przeczytałem this page i this posting, ale wyjaśnienie nie wydaje się jasne.
Czy ktoś może mi pokazać, jak naprawić ten błąd, a także wyjaśnić, co to znaczy?
EDIT:
podstawie odpowiedzi Biju Kunjummen za zmieniłem składnię do następujących:
@RequestMapping(value = "/catowners", method = RequestMethod.GET)
public String findOwnersOfPetType(@Valid Integer typeID, BindingResult result, Map<String, Object> model)
ja wciąż otrzymuję ten sam komunikat o błędzie. Czy jest coś, czego nie rozumiem?
DRUGA EDYCJA:
podstawie komentarzu Sotirios za zmieniłem kod do następujących:
@RequestMapping(value = "/catowners", method = RequestMethod.GET)
public String findOwnersOfPetType(BindingResult result, Map<String, Object> model) {
// find owners of a specific type of pet
Integer typeID = 1;//this is just a placeholder
Collection<Owner> results = this.clinicService.findOwnerByPetType(typeID);
model.put("selections", results);
return "owners/catowners";
}
ja wciąż otrzymuję ten sam komunikat o błędzie po powiedzeniu zaćmienie uruchomić jak uruchomić na ... serwer ponownie.
Czy jest coś, czego nie rozumiem?
Nono, usunąć 'BindingResult' całkowicie. Co dałoby ci to w tym drugim przykładzie edycji? Poświęć chwilę, aby przeczytać jego javadoc, aby zrozumieć, o co mu chodzi. –