Rückkehr Fehler vom controller zurück, um anzeigen in Spring MVC
In Spring MVC habe ich folgende controller:
@RequestMapping(value="adminUsers", method = RequestMethod.POST)
public ModelAndView listAdminUsers(Person newPerson, HttpServletResponse response) throws Exception {
Person person = personService.findPerson(newPerson.getUsername());
if (person == null) {
//Set errorText = "Invalid Person";
//redisplay view
ModelAndView mav = new ModelAndView("adminUsersList");
return mav;
} else {
Roles roles = new Roles();
roles.setPersonCode(person.getPersonCode());
roles.setRoleType("ADMN");
rolesMapper.insert(roles);
return new ModelAndView("redirect:/admin/adminUsers.html");
}
}
Mit der Ansicht:
<form:form method="post" action="${action}" commandName="person" >
<form:label path="username">Add new administrator:</form:label>
<form:input path="username" size="20"/>
<form:errors path="username" />
<input type="submit" value="Submit Changes"/> </form:form>
Wie würde ich einen Fehler zurück, zurück in die Ansicht, so ist es angezeigt, indem die <form:errors path="username" />
tag?
Dies ist Analog zum Wie return-Fehler status-und Fehler bei der Validierung von das Spring MVC-controller? außer ich fahre eine Webseite, nicht eine REST-Objekt, so dass die Antworten dort nicht gelten.
Möchte ich nicht verwenden Validator
weil die über die Datenbank aufruft, ist es nicht einfach einen Scheck, wenn der Benutzername nicht leer ist, etc.
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hinzufügen
BindingResult
zu deiner Signatur der Methode. Von dort ausbindingResult.rejectValue("username", "username.notvalid", "Username is not valid");
org.springframework.context.NoSuchMessageException: No message found under code 'Invalid username.person.username'
. Meine Methode ist jetzt:public ModelAndView listAdminUsers(Person newPerson, BindingResult result, HttpServletResponse response) throws Exception
und die reject-Zeile istresult.rejectValue("username","Invalid username");
BrandonV hatte. Mein Controller sieht nun folgendermaßen aus:
Müssen Sie ändern Sie Ihre Methode der Logik: