• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Spring - walidacja formularza

Object Storage Arubacloud
0 głosów
680 wizyt
pytanie zadane 15 marca 2017 w Java przez Swierzak Użytkownik (690 p.)

Witam,

jestem na poczatku drogi zwiazanej ze Springiem, dlatego prosze o wyrozumialosc.

Przerabiam material z pewnej ksiazki i mam problem z najprostsza walidacja formularza

Problem polega na tym, ze formularz przepuszcza pola nie zwracajac uwagi na adnotacje.

Korzystam z konfiguracji z wykorzystaniem klas javy, moze tu lezy problem.

 

WebInit

public class WebInit extends AbstractAnnotationConfigDispatcherServletInitializer {

    protected Class<?>[] getRootConfigClasses() {
        return new Class<?>[] {RootConfig.class};
    }

    protected Class<?>[] getServletConfigClasses() {
        return new Class<?>[] {WebConfig.class};
    }

    protected String[] getServletMappings() {
        return new String[] {"/"};
    }
}

WebConfig

@Configuration
@EnableWebMvc
@ComponentScan("com.springApp")
public class WebConfig extends WebMvcConfigurerAdapter{

    @Bean
    public InternalResourceViewResolver viewResolver (){

        InternalResourceViewResolver internalResourceViewResolver = new InternalResourceViewResolver();

        internalResourceViewResolver.setPrefix("/WEB-INF/views/");
        internalResourceViewResolver.setSuffix(".jsp");

        return internalResourceViewResolver;
    }

}

Controller

@Controller
@RequestMapping("/register")
public class RegisterController {

    @RequestMapping (method = RequestMethod.GET)
    public String register(){
        return "registerForm";
    }

    @RequestMapping (method = RequestMethod.POST)
    public String register (@Valid User user, Errors errors){

        if (errors.hasErrors()){
            System.out.println("zawiera bledy");
            return "notes";
        }
        return "home";
    }


}

Obiekt

public class User {

    @NotBlank
    @Size (min = 2, max = 20)
    private String name;
    @NotBlank
    private String lastName;
    @NotBlank
    private String username;
    @NotBlank
    @Email
    private String email;
    @NotBlank
    @Size (min = 2, max = 8)
    //@Pattern(regexp = "^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$")
    private String password;


    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", lastName='" + lastName + '\'' +
                ", username='" + username + '\'' +
                ", email='" + email + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

strona JSP - registerForm

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h2>Rejestracja</h2>
<form method="POST" action="register" >
<input type="text" name="name" placeholder="Podaj imie"/><br>
<input type="text" name="lastName" placeholder="Podaj nazwisko"/><br>
<input type="text" name="username" placeholder="Podaj nazwe uzytkownika"/><br>
<input type="text" name="email" placeholder="Podaj adres email"/><br>
<input type="password" name="password" placeholder="Podaj haslo"/><br>
<input type="submit" value="Zarejestruj"/><br>
</form>
</body>
</html>

 

komentarz 15 marca 2017 przez Mateusz51 Nałogowiec (28,180 p.)
Jakiego używasz validatora? Bo nie pamietam ale @Valid daje chyba obiekt typu BindingResult
komentarz 15 marca 2017 przez Swierzak Użytkownik (690 p.)
Niestety, probowalem juz wykorzystac BindingResult i efekt ten sam.
komentarz 15 marca 2017 przez Mateusz51 Nałogowiec (28,180 p.)
To w takim razie polecam wykorzystać tagi JSP form i tak dalej.
komentarz 15 marca 2017 przez Swierzak Użytkownik (690 p.)
Dzieki za rade, ale nurtuje mnie dlaczego to nie dziala :)

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 392 wizyt
pytanie zadane 15 lutego 2019 w Java przez niezalogowany
0 głosów
1 odpowiedź 442 wizyt
pytanie zadane 26 marca 2018 w Java przez LockeLamora Użytkownik (740 p.)
0 głosów
2 odpowiedzi 390 wizyt

92,539 zapytań

141,382 odpowiedzi

319,481 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...