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>