BAEL-4223: Displaying Spring error messages with Thymeleaf (#10652)
This commit is contained in:
+82
@@ -0,0 +1,82 @@
|
||||
package com.baeldung.thymeleaf.errors;
|
||||
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.GeneratedValue;
|
||||
import javax.persistence.GenerationType;
|
||||
import javax.persistence.Id;
|
||||
import javax.validation.constraints.Min;
|
||||
import javax.validation.constraints.NotEmpty;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
@Entity
|
||||
public class User {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||
private Long id;
|
||||
|
||||
@NotEmpty(message = "User's name cannot be empty.")
|
||||
@Size(min = 5, max = 250)
|
||||
private String fullName;
|
||||
|
||||
@NotEmpty(message = "User's email cannot be empty.")
|
||||
@Size(min = 7, max = 320)
|
||||
private String email;
|
||||
|
||||
@NotNull(message = "User's age cannot be null.")
|
||||
@Min(value = 18)
|
||||
private Integer age;
|
||||
|
||||
private String country;
|
||||
|
||||
private String phoneNumber;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getCountry() {
|
||||
return country;
|
||||
}
|
||||
|
||||
public void setCountry(String country) {
|
||||
this.country = country;
|
||||
}
|
||||
|
||||
public String getPhoneNumber() {
|
||||
return phoneNumber;
|
||||
}
|
||||
|
||||
public void setPhoneNumber(String phoneNumber) {
|
||||
this.phoneNumber = phoneNumber;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getFullName() {
|
||||
return fullName;
|
||||
}
|
||||
|
||||
public void setFullName(String fullName) {
|
||||
this.fullName = fullName;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
public Integer getAge() {
|
||||
return age;
|
||||
}
|
||||
|
||||
public void setAge(Integer age) {
|
||||
this.age = age;
|
||||
}
|
||||
}
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
package com.baeldung.thymeleaf.errors;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.validation.ObjectError;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
|
||||
@Controller
|
||||
public class UserController {
|
||||
|
||||
@Autowired
|
||||
private UserRepository repository;
|
||||
|
||||
@Autowired
|
||||
private UserValidationService validationService;
|
||||
|
||||
@GetMapping("/add")
|
||||
public String showAddUserForm(User user) {
|
||||
return "errors/addUser";
|
||||
}
|
||||
|
||||
@PostMapping("/add")
|
||||
public String addUser(@Valid User user, BindingResult result, Model model) {
|
||||
|
||||
String err = validationService.validateUser(user);
|
||||
|
||||
if (!err.isEmpty()) {
|
||||
ObjectError error = new ObjectError("globalError", err);
|
||||
result.addError(error);
|
||||
}
|
||||
|
||||
if (result.hasErrors()) {
|
||||
return "errors/addUser";
|
||||
}
|
||||
|
||||
repository.save(user);
|
||||
model.addAttribute("users", repository.findAll());
|
||||
return "errors/home";
|
||||
}
|
||||
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
package com.baeldung.thymeleaf.errors;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface UserRepository extends JpaRepository<User, Long> {
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.baeldung.thymeleaf.errors;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class UserValidationService {
|
||||
|
||||
public String validateUser(User user) {
|
||||
|
||||
String message = "";
|
||||
|
||||
if (user.getCountry() != null && user.getPhoneNumber() != null) {
|
||||
if (user.getCountry()
|
||||
.equalsIgnoreCase("India")
|
||||
&& !user.getPhoneNumber()
|
||||
.startsWith("91")) {
|
||||
message = "Phone number is invalid for " + user.getCountry();
|
||||
}
|
||||
}
|
||||
return message;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user