diff --git a/org.springframework.samples.petclinic/ivy.xml b/org.springframework.samples.petclinic/ivy.xml index 0174102e23..e41e45f127 100644 --- a/org.springframework.samples.petclinic/ivy.xml +++ b/org.springframework.samples.petclinic/ivy.xml @@ -22,6 +22,7 @@ + @@ -30,6 +31,7 @@ + diff --git a/org.springframework.samples.petclinic/petclinic.iml b/org.springframework.samples.petclinic/petclinic.iml index b0463567bc..91a88e9c63 100644 --- a/org.springframework.samples.petclinic/petclinic.iml +++ b/org.springframework.samples.petclinic/petclinic.iml @@ -169,158 +169,31 @@ + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/Vet.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/Vet.java index 53d0b5c49f..9c7c8da0b1 100644 --- a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/Vet.java +++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/Vet.java @@ -5,6 +5,7 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; +import javax.xml.bind.annotation.XmlElement; import org.springframework.beans.support.MutableSortDefinition; import org.springframework.beans.support.PropertyComparator; @@ -15,6 +16,7 @@ import org.springframework.beans.support.PropertyComparator; * @author Ken Krebs * @author Juergen Hoeller * @author Sam Brannen + * @author Arjen Poutsma */ public class Vet extends Person { @@ -32,6 +34,7 @@ public class Vet extends Person { return this.specialties; } + @XmlElement public List getSpecialties() { List sortedSpecs = new ArrayList(getSpecialtiesInternal()); PropertyComparator.sort(sortedSpecs, new MutableSortDefinition("name", true, true)); diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/Vets.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/Vets.java new file mode 100644 index 0000000000..2e3b25e270 --- /dev/null +++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/Vets.java @@ -0,0 +1,43 @@ +/* + * Copyright 2002-2009 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.samples.petclinic; + +import java.util.ArrayList; +import java.util.List; +import javax.xml.bind.annotation.XmlElement; +import javax.xml.bind.annotation.XmlRootElement; + +/** + * Simple JavaBean domain object representing a list of veterinarians. Mostly here to be used for the 'vets' + * {@link org.springframework.web.servlet.view.xml.MarshallingView}. + * + * @author Arjen Poutsma + */ +@XmlRootElement +public class Vets { + + private List vets; + + @XmlElement + public List getVetList() { + if (vets == null) { + vets = new ArrayList(); + } + return vets; + } + +} diff --git a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/web/ClinicController.java b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/web/ClinicController.java index 5dd5edf754..c11853091b 100644 --- a/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/web/ClinicController.java +++ b/org.springframework.samples.petclinic/src/main/java/org/springframework/samples/petclinic/web/ClinicController.java @@ -3,6 +3,7 @@ package org.springframework.samples.petclinic.web; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.samples.petclinic.Clinic; +import org.springframework.samples.petclinic.Vets; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.PathVariable; @@ -53,7 +54,9 @@ public class ClinicController { */ @RequestMapping("/vets") public ModelMap vetsHandler() { - return new ModelMap(this.clinic.getVets()); + Vets vets = new Vets(); + vets.getVetList().addAll(this.clinic.getVets()); + return new ModelMap(vets); } /** diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/jsp/owner.jsp b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/jsp/owner.jsp index 1a8432124e..5401842193 100644 --- a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/jsp/owner.jsp +++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/jsp/owner.jsp @@ -96,7 +96,7 @@ - + diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/jsp/vets.jsp b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/jsp/vets.jsp index 2ee6d20b71..fde93bb355 100644 --- a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/jsp/vets.jsp +++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/jsp/vets.jsp @@ -10,7 +10,7 @@ Specialties - + ${vet.firstName} ${vet.lastName} @@ -22,5 +22,12 @@ + + + + +
+ ">View as XML +
<%@ include file="/WEB-INF/jsp/footer.jsp" %> diff --git a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/petclinic-servlet.xml b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/petclinic-servlet.xml index 77798e75a0..592011f1c6 100644 --- a/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/petclinic-servlet.xml +++ b/org.springframework.samples.petclinic/src/main/webapp/WEB-INF/petclinic-servlet.xml @@ -4,8 +4,10 @@ --> + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd + http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm-3.0.xsd"> - + + + + + + + + + + + + + + - - + + + + + + + + + + + +