Add birthdate validation

This commit is contained in:
bijomutta 2023-07-07 18:39:38 +02:00 committed by Dave Syer
parent b4efc934b2
commit 3be289517d
3 changed files with 16 additions and 2 deletions

View file

@ -15,6 +15,7 @@
*/ */
package org.springframework.samples.petclinic.owner; package org.springframework.samples.petclinic.owner;
import java.time.LocalDate;
import java.util.Collection; import java.util.Collection;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -88,6 +89,11 @@ class PetController {
result.rejectValue("name", "duplicate", "already exists"); result.rejectValue("name", "duplicate", "already exists");
} }
LocalDate currentDate = LocalDate.now();
if (pet.getBirthDate() != null && pet.getBirthDate().isAfter(currentDate)) {
result.rejectValue("birthDate", "typeMismatch.birthDate");
}
owner.addPet(pet); owner.addPet(pet);
if (result.hasErrors()) { if (result.hasErrors()) {
model.put("pet", pet); model.put("pet", pet);
@ -107,6 +113,12 @@ class PetController {
@PostMapping("/pets/{petId}/edit") @PostMapping("/pets/{petId}/edit")
public String processUpdateForm(@Valid Pet pet, BindingResult result, Owner owner, ModelMap model) { public String processUpdateForm(@Valid Pet pet, BindingResult result, Owner owner, ModelMap model) {
LocalDate currentDate = LocalDate.now();
if (pet.getBirthDate() != null && pet.getBirthDate().isAfter(currentDate)) {
result.rejectValue("birthDate", "typeMismatch.birthDate");
}
if (result.hasErrors()) { if (result.hasErrors()) {
model.put("pet", pet); model.put("pet", pet);
return VIEWS_PETS_CREATE_OR_UPDATE_FORM; return VIEWS_PETS_CREATE_OR_UPDATE_FORM;

View file

@ -4,5 +4,6 @@ notFound=wurde nicht gefunden
duplicate=ist bereits vergeben duplicate=ist bereits vergeben
nonNumeric=darf nur numerisch sein nonNumeric=darf nur numerisch sein
duplicateFormSubmission=Wiederholtes Absenden des Formulars ist nicht erlaubt duplicateFormSubmission=Wiederholtes Absenden des Formulars ist nicht erlaubt
typeMismatch.date=ungültiges Datum typeMismatch.date=ung<EFBFBD>ltiges Datum
typeMismatch.birthDate=ungültiges Datum typeMismatch.birthDate=ung<EFBFBD>ltiges Datum

View file

@ -6,3 +6,4 @@ nonNumeric=Sólo debe contener numeros
duplicateFormSubmission=No se permite el envío de formularios duplicados duplicateFormSubmission=No se permite el envío de formularios duplicados
typeMismatch.date=Fecha invalida typeMismatch.date=Fecha invalida
typeMismatch.birthDate=Fecha invalida typeMismatch.birthDate=Fecha invalida