1 package org.springframework.samples.petclinic.web; 2 3 import java.util.HashMap ; 4 import java.util.Map ; 5 6 import javax.servlet.ServletException ; 7 import javax.servlet.http.HttpServletRequest ; 8 import javax.servlet.http.HttpServletResponse ; 9 10 import org.springframework.samples.petclinic.Owner; 11 import org.springframework.samples.petclinic.Pet; 12 import org.springframework.samples.petclinic.PetType; 13 import org.springframework.samples.petclinic.util.EntityUtils; 14 import org.springframework.web.bind.RequestUtils; 15 import org.springframework.web.servlet.ModelAndView; 16 17 22 public class AddPetForm extends AbstractClinicForm { 23 24 public AddPetForm() { 25 setSessionForm(true); 27 } 28 29 protected Map referenceData(HttpServletRequest request) throws ServletException { 30 Map refData = new HashMap (); 31 refData.put("types", getClinic().getPetTypes()); 32 return refData; 33 } 34 35 protected Object formBackingObject(HttpServletRequest request) throws ServletException { 36 Owner owner = getClinic().loadOwner(RequestUtils.getRequiredIntParameter(request, "ownerId")); 37 Pet pet = new Pet(); 38 owner.addPet(pet); 39 return pet; 40 } 41 42 protected void onBind(HttpServletRequest request, Object command) { 43 Pet pet = (Pet) command; 44 int typeId = Integer.parseInt(request.getParameter("typeId")); 45 pet.setType((PetType) EntityUtils.getById(getClinic().getPetTypes(), PetType.class, typeId)); 46 } 47 48 49 protected ModelAndView onSubmit(Object command) throws ServletException { 50 Pet pet = (Pet) command; 51 getClinic().storePet(pet); 53 return new ModelAndView(getSuccessView(), "ownerId", pet.getOwner().getId()); 54 } 55 56 protected ModelAndView handleInvalidSubmit(HttpServletRequest request, HttpServletResponse response) 57 throws Exception { 58 return disallowDuplicateFormSubmission(request, response); 59 } 60 61 } 62 | Popular Tags |