Heim > Java > javaLernprogramm > Hauptteil

Wie validieren Sie Benutzereingaben in Spring MVC?

Susan Sarandon
Freigeben: 2024-10-29 18:30:02
Original
856 Leute haben es durchsucht

How do you validate user input in Spring MVC?

Validierung von Benutzereingaben in Spring MVC: Eine ausführliche Anleitung

Die Validierung von Benutzereingaben ist entscheidend für die Gewährleistung der Integrität und Zuverlässigkeit von Formulardaten im Web Anwendungen. Spring MVC bietet mehrere Ansätze, um diese Aufgabe zu erfüllen, jeder mit seinen Vor- und Nachteilen.

Methode 1: Annotationsbasierte Validierung

Für einfache Validierungsanforderungen: Spring 3. x und höher führt die Verwendung von javax.validation.constraints-Annotationen ein. Diese Anmerkungen werden direkt auf Bean-Eigenschaften angewendet und markieren sie als erforderlich oder unterliegen bestimmten Einschränkungen. Zum Beispiel:

<code class="java">public class User {

    @NotNull
    private String name;

    ...

}</code>
Nach dem Login kopieren

In Ihrem Controller können Sie @Valid und @ModelAttribute verwenden, um eine Validierung durchzuführen:

<code class="java">@RequestMapping(value="/user", method=RequestMethod.POST)
public createUser(Model model, @Valid @ModelAttribute("user") User user, BindingResult result){
    if (result.hasErrors()){
      // do something
    }
    else {
      // do something else
    }
}</code>
Nach dem Login kopieren

Methode 2: Manuelle Validierung

Für komplexere Validierungsanforderungen wird die manuelle Implementierung der Validierungslogik über die Schnittstelle org.springframework.validation.Validator empfohlen.

<code class="java">public class UserValidator implements Validator {

    @Override
    public boolean supports(Class clazz) {
      return User.class.equals(clazz);
    }

    @Override
    public void validate(Object target, Errors errors) {
      User user = (User) target;

      if(user.getName() == null) {
          errors.rejectValue("name", "your_error_code");
      }

      // do "complex" validation here

    }

}</code>
Nach dem Login kopieren

In Ihrem Controller:

<code class="java">@RequestMapping(value="/user", method=RequestMethod.POST)
public createUser(Model model, @ModelAttribute("user") User user, BindingResult result){
    UserValidator userValidator = new UserValidator();
    userValidator.validate(user, result);

    if (result.hasErrors()){
      // do something
    }
    else {
      // do something else
    }
}</code>
Nach dem Login kopieren

Methode 3: Kombinierter Ansatz

Die Kombination von annotationsbasierter und manueller Validierung kann die Vorteile beider Ansätze nutzen.

Warnung:

Validierungsbehandlung sollte nicht mit Ausnahmebehandlung verwechselt werden. Die Validierung bezieht sich auf die Geschäftsregeln und Datenbeschränkungen Ihrer Anwendung, während die Ausnahmebehandlung Systemfehler behebt.

Referenzen:

  • [Blogbeitrag über Bean-Validierung] (https://dzone.com/articles/bean-validation-without-ejb)
  • [Blogbeitrag über Validierung mit Spring MVC](https://www.baeldung.com/spring-mvc-validation )
  • [Spring-Dokumentation zur Validierung](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/validation/annotation/package-summary.html)

Das obige ist der detaillierte Inhalt vonWie validieren Sie Benutzereingaben in Spring MVC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!