From f0b00da185b9e1e232c2e528132ebb457e011ed9 Mon Sep 17 00:00:00 2001 From: TejasM <tejasmehta0@gmail.com> Date: Mon, 27 May 2013 14:28:24 -0400 Subject: [PATCH] Select Tag to validate pet type --- .../samples/petclinic/web/PetValidator.java | 2 ++ .../jsp/pets/createOrUpdatePetForm.jsp | 3 +-- src/main/webapp/WEB-INF/tags/selectField.tag | 23 +++++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 src/main/webapp/WEB-INF/tags/selectField.tag 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 7068dd87..b47d0278 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 ee9c0a91..6a740609 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> 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 00000000..f93256ac --- /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 -- GitLab