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

Java编程

开发平台:

Java

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