J'ai un champ de saisie (type: 'date') - qui puis-je mapper à un champ 'LocalDate' dans mon objet en utilisant Thymeleaf?Mapper la date d'entrée HTML à LocalDate de l'objet Java
objet
public class Project {
@Id
private int id;
private LocalDate startDate;
private LocalDate endDate;
}
entrée HTML
<form action="#"
th:action="@{|/admin/projects/add/save|}"
th:object="${newProjects}"
method="POST"
class="form-horizontal">
<input type="date" class="form-control" id="startDate"
placeholder="Project start"
th:field="*{startDate}"/>
<input type="date" class="form-control" id="endDate"
placeholder="Project start"
th:field="*{endDate}"/>
</form>
Comment pourrais-je mapper le champ d'entrée correctement à la LocalDate startDate ou endDate?
Contrôleur
//GetMapping for Projects is also there, but I didn't paste it to keep clarity
@PostMapping("/add/save")
public String saveProject(@Valid @ModelAttribute("project") Project project,
BindingResult bindingResult,
Model model,
RedirectAttributes redirectAttributes) {
// bindingResult has error, because Thymeleaf can't map from the input-field to startDate
if (!bindingResult.hasErrors()) {
project.save(project);
return "redirect:/admin/projects/list";
} else {
return "admin/projects/add";
}
}
Exception
Impossible de convertir la valeur de la propriété de type 'java.lang.String' au type requis 'java.time.LocalDate' pour les biens 'date de début'; imbriqué exception est org.springframework.core.convert.ConversionFailedException: Impossible de converti à partir du type [java.lang.String] pour taper [@ javax.persistence.Column java.time.LocalDate] pour la valeur « 2017- 09-08 '; exception imbriquée est java.lang.IllegalArgumentException: Parse tentative a échoué pour la valeur [08/09/2017]
Le premier a travaillé. Je vous remercie! – ersu
Super! Assurez-vous d'avoir marqué une réponse acceptable pour aider quelqu'un d'autre à aller directement à la solution. –