Spring MVC Formular:Fehler nicht angezeigt

Entschuldigt, wenn diese Frage gestellt wurde, vor. Ich hoffe, dass jemand kann in Schritt und helfen mir herauszufinden, warum mein form-überprüfungs-Fehlern nicht angezeigt.

Ich bin mit Spring 3.0.3 und Winterschlaf, und ich bin mit jsr 303 Validierung zur Validierung Formular-Eingaben. Ich habe ein Spring-controller, der die Griffe Immer eine Seite, die ein Formular enthält, das Sie mit Hilfe der Spring form-taglib. In dieser form ein Benutzer ist in der Lage, ändern Ihre Namen und haben es in der Datenbank gespeichert. Wenn eine der Eingabe leer ist, dann die Seite mit dem Formular angezeigt werden sollen, wieder mit den Fehlermeldungen. Die gleichen controller für die Seite der Vorlage. Es scheint, dass der controller ordnungsgemäß funktioniert in den meisten Punkten, aber wenn es einen Fehler in der eingereichten form, es werden keine Fehler angezeigt auf der Seite.

Hier ist, was die form sieht so aus:

<form:form commandName="changeNameCommand">
    <form:errors path="*" cssClass="errorBox" />

    <table width="100%" border="0" cellspacing="5" cellpadding="5" align="left">
      <tr>
    <td><b>First Name:</b></td>
    <td><form:input path="firstName" value="${user.firstName}" /></td>
  </tr>
  <tr>
    <td><b>Last Name:</b></td>
    <td> <form:input path="lastName" value="${user.lastName}" /></td>
  </tr>
</table>
</form:form>    

Beachten Sie, dass es ein user-Objekt in der Ansicht, die verwendet wird, um zu füllen Sie die form mit der aktuellen ersten und letzten Namen. Das ist richtig funktioniert.

Der controller sieht wie folgt aus:

@Controller
@RequestMapping(value =  "/account/settings/change-name")
@SessionAttributes("changeNameCommand")
public class ChangeNameController {

    @ModelAttribute("changeNameCommand")
    public ChangeNameCommand getCommand() {
        return new ChangeNameCommand();
    }

    @RequestMapping(method = RequestMethod.GET)
    public ModelAndView getChangeNamePage(HttpServletRequest req) {
    ModelAndView mav = new ModelAndView("Account.ChangeName");
        mav.addObject("page_title", "Change Name");

        return mav;
    }

    @RequestMapping(method = RequestMethod.POST)
    public String doChangeName(
                @ModelAttribute("changeNameCommand") 
                    @Valid ChangeNameCommand command, 
                    BindingResult result, SessionStatus status) {

        if (result.hasErrors()) {
            return "redirect:/account/settings/change-name"; 
        }

    //Code here to persist updated user first and last name to database...        

        status.setComplete();

        return "redirect:/home";
    }
}

Ich bin mit Fliesen 2.1.2 auf Seiten verfassen und Urlrewrite 3.1.0 helfen-freundliche urls.

Den ChangeNameCommand Klasse sieht ungefähr so aus:

import org.hibernate.validator.constraints.NotEmpty;

public class ChangeNameCommand {

    @NotEmpty(message = "You must provide a first name.")
    private String firstName;

    @NotEmpty(message = "You must provide a last name.")
    private String lastName;

    @NotEmpty(message = "Your password is required to make changes.")
    private String currentPassword;

    //Getters and setters here...
}

Beim Debuggen sehe ich, dass, wenn es keinen Eingang für entweder den ersten oder letzten Namen der BindingResult Instanz enthält Fehler. Mein Anliegen ist die Umleitung, wenn ein Fehler aufgetreten ist. Ich habe gesehen, andere Fragen hier, die nur wieder den Namen der Ansicht an, anstatt die Umleitung: Präfix. Ich habe versucht, die aber (denke ich), weil der Weg, ich bin mit Urlrewrite und die Art, wie mein servlet-mapping eingestellt, bis der Frühling gibt einen Fehler zurück. Ich habe versucht, die Rückkehr

/account/settings/change-name
/web/account/settings/change-name
/mywebsite/web/account/settings/change-name

aber ohne Erfolg. FWIW, hier mal mein servlet-mapping:

<servlet-mapping>
    <servlet-name>mywebsite</servlet-name>
    <url-pattern>/web/*</url-pattern>
</servlet-mapping>

Jede Hilfe viel geschätzt!

InformationsquelleAutor richever | 2010-10-03
Schreibe einen Kommentar