diff --git a/src/main/webapp/WEB-INF/jsp/owners/form.jsp b/src/main/webapp/WEB-INF/jsp/owners/form.jsp index f051703a1636a228b09335f807a35351c6dde83a..7b50fea0c09caf16e33dfca28c67770830b6148d 100644 --- a/src/main/webapp/WEB-INF/jsp/owners/form.jsp +++ b/src/main/webapp/WEB-INF/jsp/owners/form.jsp @@ -10,11 +10,9 @@ <jsp:include page="../header.jsp"/> <body> - <div id="header well"> + <div class="container" style="padding-top: 50px;"> <spring:url value="/resources/images/banner-graphic.png" var="banner"/> <img src="${banner}" /> - </div> - <div class="container" style="padding-top: 50px;"> <c:choose> <c:when test="${owner['new']}"><c:set var="method" value="post"/></c:when> <c:otherwise><c:set var="method" value="put"/></c:otherwise> diff --git a/src/main/webapp/WEB-INF/jsp/owners/show.jsp b/src/main/webapp/WEB-INF/jsp/owners/show.jsp index 640d31e86bf85d73ee8740b395664b976caea45c..205cfda8ab468f16b0e9ae829e749ffad28e26ab 100644 --- a/src/main/webapp/WEB-INF/jsp/owners/show.jsp +++ b/src/main/webapp/WEB-INF/jsp/owners/show.jsp @@ -92,7 +92,7 @@ <table class="table-buttons"> <tr> <td> - <spring:url value="{ownerId}/pets/{petId}/edit" var="petUrl"> + <spring:url value="/owners/{ownerId}/pets/{petId}/edit" var="petUrl"> <spring:param name="ownerId" value="${owner.id}"/> <spring:param name="petId" value="${pet.id}"/> </spring:url> @@ -100,7 +100,7 @@ </td> <td></td> <td> - <spring:url value="{ownerId}/pets/{petId}/visits/new" var="visitUrl"> + <spring:url value="/owners/{ownerId}/pets/{petId}/visits/new" var="visitUrl"> <spring:param name="ownerId" value="${owner.id}"/> <spring:param name="petId" value="${pet.id}"/> </spring:url> @@ -108,7 +108,7 @@ </td> <td></td> <td> - <spring:url value="{ownerId}/pets/{petId}/visits.atom" var="feedUrl"> + <spring:url value="/owners/{ownerId}/pets/{petId}/visits.atom" var="feedUrl"> <spring:param name="ownerId" value="${owner.id}"/> <spring:param name="petId" value="${pet.id}"/> </spring:url> diff --git a/src/main/webapp/WEB-INF/jsp/pets/form.jsp b/src/main/webapp/WEB-INF/jsp/pets/form.jsp index 495e7df681e9504c68ccf5a21bef622deee70a18..2be8b4324aa63b7f63f0688b4219000efed49c06 100644 --- a/src/main/webapp/WEB-INF/jsp/pets/form.jsp +++ b/src/main/webapp/WEB-INF/jsp/pets/form.jsp @@ -12,6 +12,7 @@ <div class="container"> <spring:url value="/resources/images/banner-graphic.png" var="banner"/> <img src="${banner}" /> + <c:choose> <c:when test="${pet['new']}"><c:set var="method" value="post"/></c:when> <c:otherwise><c:set var="method" value="put"/></c:otherwise> @@ -22,49 +23,42 @@ <b>Owner:</b> ${pet.owner.firstName} ${pet.owner.lastName} <br/> <form:form modelAttribute="pet" method="${method}"> - <table> - <tr> - <th> - Name: <form:errors path="name" cssClass="errors"/> - <br/> - <form:input path="name" size="30" maxlength="30"/> - </th> - </tr> - <tr> - <th> - Birth Date: <form:errors path="birthDate" cssClass="errors"/> - <br/> - <form:input path="birthDate" size="10" maxlength="10"/> (yyyy-mm-dd) - </th> - </tr> - <tr> - <th> - Type: <form:errors path="type" cssClass="errors"/> - <br/> - <form:select path="type" items="${types}"/> - </th> - </tr> - <tr> - <td> - <c:choose> - <c:when test="${pet['new']}"> - <p class="submit"><input type="submit" value="Add Pet"/></p> - </c:when> - <c:otherwise> - <p class="submit"><input type="submit" value="Update Pet"/></p> - </c:otherwise> - </c:choose> - </td> - </tr> - </table> - </form:form> - - <c:if test="${!pet['new']}"> - <form:form method="delete"> - <p class="submit"><input type="submit" value="Delete Pet"/></p> - </form:form> - </c:if> - + <fieldset> + <div class="control-group" id="name"> + <label class="control-label">Name </label> + <div class="controls"> + <form:input path="name" /> + <span class="help-inline"><form:errors path="name" /></span> + </div> + </div> + <div class="control-group" id="birthDate"> + <label class="control-label">Birth Date </label> + <div class="controls"> + <form:input path="birthDate" /> + <span class="help-inline"><form:errors path="birthDate" /></span> + </div> + </div> + <div class="control-group" id="type"> + <label class="control-label">Type </label> + <form:select path="type" items="${types}"/> + </div> + <div class="form-actions"> + <c:choose> + <c:when test="${owner['new']}"> + <button type="submit">Add Pet</button> + </c:when> + <c:otherwise> + <button type="submit">Update Pet</button> + </c:otherwise> + </c:choose> + </div> + </fieldset> + </form:form> + <c:if test="${!pet['new']}"> + <form:form method="delete"> + <p class="submit"><input type="submit" value="Delete Pet"/></p> + </form:form> + </c:if> </div> <jsp:include page="../footer.jsp"/> </body> diff --git a/src/main/webapp/WEB-INF/jsp/vets.jsp b/src/main/webapp/WEB-INF/jsp/vets.jsp index bb9e0d0a27b1eb7806aa9837eadca7232b0b20e4..2674e75be57ba4ebbacbb35f9374845e0cd5250d 100644 --- a/src/main/webapp/WEB-INF/jsp/vets.jsp +++ b/src/main/webapp/WEB-INF/jsp/vets.jsp @@ -15,7 +15,7 @@ <h2>Veterinarians</h2> - <table> + <table class="table table-stripped" style="width:600px;"> <thead> <tr> <th>Name</th> @@ -44,8 +44,8 @@ </tr> </table> + <jsp:include page="footer.jsp"/> </div> - <jsp:include page="footer.jsp"/> </body> </html> diff --git a/src/main/webapp/WEB-INF/petclinic-servlet.xml b/src/main/webapp/WEB-INF/petclinic-servlet.xml index 095746eb6a8a2325e750a30c61066a04c713fbb1..74670042ddfc7e3c03dde242d8ca581be3c86817 100644 --- a/src/main/webapp/WEB-INF/petclinic-servlet.xml +++ b/src/main/webapp/WEB-INF/petclinic-servlet.xml @@ -14,23 +14,42 @@ - The controllers are autodetected POJOs labeled with the @Controller annotation. --> <context:component-scan base-package="org.springframework.samples.petclinic.web"/> + + + <mvc:annotation-driven /> + <!-- <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager" /> --> + + <!-- all resources inside folder src/main/webapp/resources are mapped so they can be refered to inside JSP files + (see header.jsp for more details) --> + <mvc:resources mapping="/resources/**" location="/resources/"/> + + <!-- uses WebJars so Javascript and CSS libs can be declared as Maven dependencies (we're using it for Bootstrap) --> + <mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/> + + + <!-- + - This bean configures the 'prefix' and 'suffix' properties of + - InternalResourceViewResolver, which resolves logical view names + - returned by Controllers. For example, a logical view name of "vets" + - will be mapped to "/WEB-INF/jsp/vets.jsp". + --> + <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" + p:suffix=".jsp" /> + <!-- - - The form-based controllers within this application provide @RequestMapping - - annotations at the type level for path mapping URLs and @RequestMapping - - at the method level for request type mappings (e.g., GET and POST). - - In contrast, ClinicController - which is not form-based - provides - - @RequestMapping only at the method level for path mapping URLs. - - - - DefaultAnnotationHandlerMapping is driven by these annotations and is - - enabled by default with Java 5+. + - Message source for this context, loaded from localized "messages_xx" files. + - Files are stored inside src/main/resources --> + <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" + p:basename="messages"/> + + <!-- - - This bean processes annotated handler methods, applying PetClinic-specific PropertyEditors - - for request parameter binding. It overrides the default AnnotationMethodHandlerAdapter. + Processes annotated handler methods, applying PetClinic-specific request parameter binding. --> - <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> + <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="webBindingInitializer"> <bean class="org.springframework.samples.petclinic.web.ClinicBindingInitializer"/> </property> @@ -61,14 +80,9 @@ - property of the vets view bean, setting it to 'application/vnd.springsource.samples.petclinic+xml'. --> - <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager" /> - - <mvc:resources mapping="/resources/**" location="/resources/"/> - - <mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/"/> - <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> + <!-- <bean id="contentNegotiationManager" class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> <property name="favorPathExtension" value="false" /> <property name="favorParameter" value="true" /> <property name="mediaTypes"> @@ -78,7 +92,7 @@ xml=application/xml </value> </property> - </bean> + </bean> --> <!-- @@ -87,21 +101,12 @@ - be the first view resolver to be used after the delegating content - negotiating view resolver. --> - <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" /> - <!-- - - - This bean configures the 'prefix' and 'suffix' properties of - - InternalResourceViewResolver, which resolves logical view names - - returned by Controllers. For example, a logical view name of "vets" - - will be mapped to "/WEB-INF/jsp/vets.jsp". - --> - <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:prefix="/WEB-INF/jsp/" - p:suffix=".jsp" /> + <!-- <bean class="org.springframework.web.servlet.view.BeanNameViewResolver" /> --> <!-- - The AtomView rendering a Atom feed of the visits --> - <bean id="visits" class="org.springframework.samples.petclinic.web.VisitsAtomView"/> + <!-- <bean id="visits" class="org.springframework.samples.petclinic.web.VisitsAtomView"/> <bean id="vets" class="org.springframework.web.servlet.view.xml.MarshallingView"> <property name="contentType" value="application/vnd.springsource.samples.petclinic+xml"/> @@ -110,14 +115,8 @@ <oxm:jaxb2-marshaller id="marshaller"> <oxm:class-to-be-bound name="org.springframework.samples.petclinic.Vets"/> - </oxm:jaxb2-marshaller> + </oxm:jaxb2-marshaller> --> + - <!-- - - Message source for this context, loaded from localized "messages_xx" files. - - Could also reside in the root application context, as it is generic, - - but is currently just used within PetClinic's web tier. - --> - <bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource" - p:basename="messages"/> </beans>