Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ public void validate(Pet pet, Errors errors) {
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");
}
}

Expand Down
3 changes: 1 addition & 2 deletions src/main/webapp/WEB-INF/jsp/pets/createOrUpdatePetForm.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down
23 changes: 23 additions & 0 deletions src/main/webapp/WEB-INF/tags/selectField.tag
Original file line number Diff line number Diff line change
@@ -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>