mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-05-20 19:09:37 +00:00
improvements to Visit controller
- renamed - migrated validation to bean validation
This commit is contained in:
parent
ece1a7a7ac
commit
3d22e37944
3 changed files with 10 additions and 30 deletions
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
/**
|
||||
* <code>Validator</code> for <code>Visit</code> 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");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -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";
|
||||
}
|
Loading…
Reference in a new issue