Fehler beim konvertieren von Eigenschaft-Wert vom Typ java.lang.Zeichenfolge erforderlich Typ java.util.Datum
Bin ich immer diese Fehlermeldung wenn ich versuche die Eingabe eines Datums in ein Formular.
TaskController
@RequestMapping(value = "/docreatetask", method = RequestMethod.POST)
public String doCreateTask(Model model, @Valid Task task,
BindingResult result, Principal principal,
@RequestParam(value = "delete", required = false) String delete) {
System.out.println(">TaskController doCreateTask " + task);
if (result.hasErrors()) {
System.out.println("/docreatetask in here");
model.addAttribute("task", task);
System.out.println("+++++"+task.getDeadline());//deadline is null
return "createtask";
}
...
Erstellen.jsp
...
<form:form method="POST"
action="${pageContext.request.contextPath}/docreatetask"
commandName="task">
<table class="formtable">
<tr>
<td class="label">Task</td>
<td><form:input cssClass="control" path="taskname"
name="taskname" type="text" /><br />
<form:errors path="taskname" cssClass="error" /></td>
</tr>
<tr>
<td class="label">Description</td>
<td><form:textarea cssClass="control" path="description"
name="description"></form:textarea><br />
<form:errors path="description" cssClass="error" /></td>
</tr>
<tr>
<td class="label">Deadline (dd/mm/yyyy)</td>
<td><form:input cssClass="control" path="deadline"
name="deadline" type="date" /><br />
<form:errors path="deadline" cssClass="error"></form:errors></td>
</tr>
...
In der Steuerung ich schrieb die folgende mit dem gleichen Fehler (und andere Formate wie "yyyy/MM/dd")
@InitBinder
public void initBinder(WebDataBinder webDataBinder) {
SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
dateFormat.setLenient(false);
webDataBinder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
Ich habe auch versucht, fügen Sie eine annotation in der Klasse (auch mit unterschiedlichen Formaten) aber der gleiche Fehler
...
@Column(name = "deadline")
@DateTimeFormat(pattern = "dd/MM/yyyy")
private Date deadline;
...
Post-code Ihrer JSP.
Ich glaube, ich fand den Fehler. Ich geändert neue " = SimpleDateFormat("dd/MM/yyyy") für die neue " = SimpleDateFormat("yyyy-MM-dd")
Das Muster sollte
Ja, sorry der Rechtschreibfehler
Ich glaube, ich fand den Fehler. Ich geändert neue " = SimpleDateFormat("dd/MM/yyyy") für die neue " = SimpleDateFormat("yyyy-MM-dd")
Das Muster sollte
"yyyy-MM-dd"
. Vorsichtig mit MM (Monate) und mm (Minuten).Ja, sorry der Rechtschreibfehler
InformationsquelleAutor Joe | 2014-05-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fügen Sie diese in den controller. Ändern Sie das Datumsformat für das Gebietsschema-Einstellung.
Erwägen Sie die Verwendung dieser Annotationen im Modell (Anpassung von format und TemporalType für Ihre Vorlieben)
DateTimeFormat-könnte hilfreich sein, wenn Sie die Umwandlung das Feld Zeichenfolge wieder. Zum Beispiel. (Konvertieren, XML, Json, etc) oder einfach nur die Eigenschaft in der JSP @ Temporal wird die Kontrolle, wenn Sie Shop das Feld als DATE-oder DATETIME-Feld in der Datenbank.
vielen Dank! Ich habe ganz vergessen über initBinder... Du hast mich gerettet eine Menge Zeit!
InformationsquelleAutor borjab
einfach hinzufügen @DateTimeFormat(pattern = "yyyy-MM-dd") mit (-)
Beispiel:
InformationsquelleAutor xXxlazharxXx
Müssen Sie die änderung in der BaseController für initBinder
InformationsquelleAutor WLiu