diff --git a/src/main/java/org/springframework/samples/petclinic/Visit.java b/src/main/java/org/springframework/samples/petclinic/Visit.java
index 7d7502d1a..944d17d8c 100644
--- a/src/main/java/org/springframework/samples/petclinic/Visit.java
+++ b/src/main/java/org/springframework/samples/petclinic/Visit.java
@@ -7,6 +7,8 @@ import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
/**
* Simple JavaBean domain object representing a visit.
@@ -21,6 +23,7 @@ public class Visit extends BaseEntity {
private Date date;
/** Holds value of property description. */
+ @NotNull @Size(min = 1)
@Column(name="description")
private String description;
diff --git a/src/main/java/org/springframework/samples/petclinic/validation/VisitValidator.java b/src/main/java/org/springframework/samples/petclinic/validation/VisitValidator.java
deleted file mode 100644
index 35c80bafa..000000000
--- a/src/main/java/org/springframework/samples/petclinic/validation/VisitValidator.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.springframework.samples.petclinic.validation;
-
-import org.springframework.samples.petclinic.Visit;
-import org.springframework.util.StringUtils;
-import org.springframework.validation.Errors;
-
-/**
- * Validator
for Visit
forms.
- *
- * @author Ken Krebs
- * @author Juergen Hoeller
- */
-public class VisitValidator {
-
- public void validate(Visit visit, Errors errors) {
- if (!StringUtils.hasLength(visit.getDescription())) {
- errors.rejectValue("description", "required", "required");
- }
- }
-
-}
diff --git a/src/main/java/org/springframework/samples/petclinic/web/AddVisitController.java b/src/main/java/org/springframework/samples/petclinic/web/VisitController.java
similarity index 76%
rename from src/main/java/org/springframework/samples/petclinic/web/AddVisitController.java
rename to src/main/java/org/springframework/samples/petclinic/web/VisitController.java
index f005cff33..0f3874338 100644
--- a/src/main/java/org/springframework/samples/petclinic/web/AddVisitController.java
+++ b/src/main/java/org/springframework/samples/petclinic/web/VisitController.java
@@ -1,17 +1,17 @@
package org.springframework.samples.petclinic.web;
+import javax.validation.Valid;
+
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.samples.petclinic.Clinic;
import org.springframework.samples.petclinic.Pet;
import org.springframework.samples.petclinic.Visit;
-import org.springframework.samples.petclinic.validation.VisitValidator;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
-import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@@ -27,15 +27,14 @@ import org.springframework.web.bind.support.SessionStatus;
* @author Arjen Poutsma
*/
@Controller
-@RequestMapping("/owners/*/pets/{petId}/visits/new")
@SessionAttributes("visit")
-public class AddVisitController {
+public class VisitController {
private final Clinic clinic;
@Autowired
- public AddVisitController(Clinic clinic) {
+ public VisitController(Clinic clinic) {
this.clinic = clinic;
}
@@ -44,7 +43,7 @@ public class AddVisitController {
dataBinder.setDisallowedFields("id");
}
- @RequestMapping(method = RequestMethod.GET)
+ @RequestMapping(value="/owners/*/pets/{petId}/visits/new", method = RequestMethod.GET)
public String setupForm(@PathVariable("petId") int petId, Model model) {
Pet pet = this.clinic.findPet(petId);
Visit visit = new Visit();
@@ -53,9 +52,8 @@ public class AddVisitController {
return "pets/createOrUpdateVisitForm";
}
- @RequestMapping(method = RequestMethod.POST)
- public String processSubmit(@ModelAttribute("visit") Visit visit, BindingResult result, SessionStatus status) {
- new VisitValidator().validate(visit, result);
+ @RequestMapping(value="/owners/*/pets/{petId}/visits/new", method = RequestMethod.POST)
+ public String processSubmit(@Valid Visit visit, BindingResult result, SessionStatus status) {
if (result.hasErrors()) {
return "pets/createOrUpdateVisitForm";
}