forked from DevFW-CICD/spring-petclinic
fixed issues in the Pet creation form
This commit is contained in:
parent
6eae69719f
commit
57c9043121
7 changed files with 58 additions and 87 deletions
|
|
@ -19,6 +19,7 @@ import org.hibernate.annotations.Type;
|
|||
import org.joda.time.DateTime;
|
||||
import org.springframework.beans.support.MutableSortDefinition;
|
||||
import org.springframework.beans.support.PropertyComparator;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* Simple JavaBean business object representing a pet.
|
||||
|
|
@ -32,6 +33,7 @@ public class Pet extends NamedEntity {
|
|||
|
||||
@Column(name="birth_date")
|
||||
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
|
||||
@DateTimeFormat(pattern="yyyy/MM/dd")
|
||||
private DateTime birthDate;
|
||||
|
||||
@ManyToOne
|
||||
|
|
|
|||
|
|
@ -1,30 +0,0 @@
|
|||
package org.springframework.samples.petclinic.web;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.propertyeditors.StringTrimmerEditor;
|
||||
import org.springframework.samples.petclinic.PetType;
|
||||
import org.springframework.samples.petclinic.service.ClinicService;
|
||||
import org.springframework.web.bind.WebDataBinder;
|
||||
import org.springframework.web.bind.support.WebBindingInitializer;
|
||||
import org.springframework.web.context.request.WebRequest;
|
||||
|
||||
/**
|
||||
* Shared WebBindingInitializer for PetClinic's custom editors.
|
||||
*
|
||||
* <p>Alternatively, such init-binder code may be put into
|
||||
* {@link org.springframework.web.bind.annotation.InitBinder}
|
||||
* annotated methods on the controller classes themselves.
|
||||
*
|
||||
* @author Juergen Hoeller
|
||||
*/
|
||||
public class ClinicBindingInitializer implements WebBindingInitializer {
|
||||
|
||||
@Autowired
|
||||
private ClinicService clinicService;
|
||||
|
||||
public void initBinder(WebDataBinder binder, WebRequest request) {
|
||||
binder.registerCustomEditor(String.class, new StringTrimmerEditor(false));
|
||||
binder.registerCustomEditor(PetType.class, new PetTypeEditor(this.clinicService));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
package org.springframework.samples.petclinic.web;
|
||||
|
||||
import java.beans.PropertyEditorSupport;
|
||||
|
||||
import org.springframework.samples.petclinic.PetType;
|
||||
import org.springframework.samples.petclinic.service.ClinicService;
|
||||
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
* @author Juergen Hoeller
|
||||
*/
|
||||
public class PetTypeEditor extends PropertyEditorSupport {
|
||||
|
||||
private final ClinicService clinicService;
|
||||
|
||||
|
||||
public PetTypeEditor(ClinicService clinicService) {
|
||||
this.clinicService = clinicService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAsText(String text) throws IllegalArgumentException {
|
||||
for (PetType type : this.clinicService.findPetTypes()) {
|
||||
if (type.getName().equals(text)) {
|
||||
setValue(type);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
package org.springframework.samples.petclinic.web;
|
||||
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.util.Collection;
|
||||
import java.util.Locale;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.format.Formatter;
|
||||
import org.springframework.samples.petclinic.PetType;
|
||||
import org.springframework.samples.petclinic.service.ClinicService;
|
||||
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
* @author Juergen Hoeller
|
||||
* @author Michael Isvy
|
||||
*/
|
||||
public class PetTypeFormatter implements Formatter<PetType> {
|
||||
|
||||
private final ClinicService clinicService;
|
||||
|
||||
|
||||
@Autowired
|
||||
public PetTypeFormatter(ClinicService clinicService) {
|
||||
this.clinicService = clinicService;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String print(PetType petType, Locale locale) {
|
||||
return petType.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public PetType parse(String text, Locale locale) throws ParseException {
|
||||
Collection<PetType> findPetTypes = this.clinicService.findPetTypes();
|
||||
for (PetType type : findPetTypes) {
|
||||
if (type.getName().equals(text)) {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
throw new ParseException("type not found: "+text, 0);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue