petclinic-uncached
Changes
src/main/webapp/WEB-INF/tags/selectField.tag 23(+23 -0)
Details
diff --git a/src/main/java/org/springframework/samples/petclinic/web/PetValidator.java b/src/main/java/org/springframework/samples/petclinic/web/PetValidator.java
index 7068dd8..b47d027 100644
--- a/src/main/java/org/springframework/samples/petclinic/web/PetValidator.java
+++ b/src/main/java/org/springframework/samples/petclinic/web/PetValidator.java
@@ -33,6 +33,8 @@ public class PetValidator {
errors.rejectValue("name", "required", "required");
} else if (pet.isNew() && pet.getOwner().getPet(name, true) != null) {
errors.rejectValue("name", "duplicate", "already exists");
+ } else if (pet.isNew() && pet.getType() == null) {
+ errors.rejectValue("type", "required", "required");
}
}
diff --git a/src/main/webapp/WEB-INF/jsp/pets/createOrUpdatePetForm.jsp b/src/main/webapp/WEB-INF/jsp/pets/createOrUpdatePetForm.jsp
index ee9c0a9..6a74060 100644
--- a/src/main/webapp/WEB-INF/jsp/pets/createOrUpdatePetForm.jsp
+++ b/src/main/webapp/WEB-INF/jsp/pets/createOrUpdatePetForm.jsp
@@ -42,8 +42,7 @@
<petclinic:inputField label="Name" name="name"/>
<petclinic:inputField label="Birth Date" name="birthDate"/>
<div class="control-group">
- <label class="control-label">Type </label>
- <form:select path="type" items="${types}" size="5"/>
+ <petclinic:selectField name="type" label="Type " names="${types}" size="5"/>
</div>
<div class="form-actions">
<c:choose>
src/main/webapp/WEB-INF/tags/selectField.tag 23(+23 -0)
diff --git a/src/main/webapp/WEB-INF/tags/selectField.tag b/src/main/webapp/WEB-INF/tags/selectField.tag
new file mode 100644
index 0000000..f93256a
--- /dev/null
+++ b/src/main/webapp/WEB-INF/tags/selectField.tag
@@ -0,0 +1,23 @@
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
+<%@ attribute name="name" required="true" rtexprvalue="true"
+ description="Name of corresponding property in bean object" %>
+<%@ attribute name="label" required="true" rtexprvalue="true"
+ description="Label appears in red color if input is considered as invalid after submission" %>
+<%@ attribute name="names" required="true" rtexprvalue="true" type="java.util.List"
+ description="Names in the list" %>
+<%@ attribute name="size" required="true" rtexprvalue="true"
+ description="Size of Select" %>
+
+<spring:bind path="${name}">
+ <c:set var="cssGroup" value="control-group ${status.error ? 'error' : '' }"/>
+ <div class="${cssGroup}">
+ <label class="control-label">${label}</label>
+
+ <div class="controls">
+ <form:select path="${name}" items="${names}" size="${size}"/>
+ <span class="help-inline">${status.errorMessage}</span>
+ </div>
+ </div>
+</spring:bind>
\ No newline at end of file