AddVisitForm.java
上传用户:dezhong
上传日期:2022-08-10
资源大小:167k
文件大小:2k
源码类别:

Java编程

开发平台:

Java

  1. package org.springframework.samples.petclinic.web;
  2. import org.springframework.beans.factory.annotation.Autowired;
  3. import org.springframework.samples.petclinic.Clinic;
  4. import org.springframework.samples.petclinic.Pet;
  5. import org.springframework.samples.petclinic.Visit;
  6. import org.springframework.samples.petclinic.validation.VisitValidator;
  7. import org.springframework.stereotype.Controller;
  8. import org.springframework.ui.Model;
  9. import org.springframework.validation.BindingResult;
  10. import org.springframework.web.bind.annotation.ModelAttribute;
  11. import org.springframework.web.bind.annotation.RequestMapping;
  12. import org.springframework.web.bind.annotation.RequestMethod;
  13. import org.springframework.web.bind.annotation.RequestParam;
  14. import org.springframework.web.bind.annotation.SessionAttributes;
  15. import org.springframework.web.bind.support.SessionStatus;
  16. /**
  17.  * JavaBean form controller that is used to add a new <code>Visit</code> to
  18.  * the system.
  19.  *
  20.  * @author Juergen Hoeller
  21.  * @author Ken Krebs
  22.  */
  23. @Controller
  24. @RequestMapping("/addVisit.do")
  25. @SessionAttributes("visit")
  26. public class AddVisitForm {
  27. private final Clinic clinic;
  28. @Autowired
  29. public AddVisitForm(Clinic clinic) {
  30. this.clinic = clinic;
  31. }
  32. @RequestMapping(method = RequestMethod.GET)
  33. public String setupForm(@RequestParam("petId") int petId, Model model) {
  34. Pet pet = this.clinic.loadPet(petId);
  35. Visit visit = new Visit();
  36. pet.addVisit(visit);
  37. model.addAttribute("visit", visit);
  38. return "visitForm";
  39. }
  40. @RequestMapping(method = RequestMethod.POST)
  41. public String processSubmit(@ModelAttribute("visit") Visit visit, BindingResult result, SessionStatus status) {
  42. new VisitValidator().validate(visit, result);
  43. if (result.hasErrors()) {
  44. return "visitForm";
  45. }
  46. else {
  47. this.clinic.storeVisit(visit);
  48. status.setComplete();
  49. return "redirect:owner.do?ownerId=" + visit.getPet().getOwner().getId();
  50. }
  51. }
  52. }