Spring HTTP Status 400 - A solicitação enviada pelo cliente estava sintaticamente incorreta (ao adicionar a entrada de data)
Quando adiciono um campo de data no formulário jsp, recebo esse erro, mas funciona bem sem ele.
Solicitação
http://localhost:8080/myTasks/docreatetask?task=hi+there&description=stucked+here&date=2014-02-21&idTaskCategory=1&idTaskPriority=1&idTaskState=1&pending=1&idUser=0&idUser_responsible=0&evaluation=aaaaaa
Parcialmente form.jsp
<form method="GET"
action="${pageContext.request.contextPath}/docreatetask">
<table>
<tr>
<td>Task</td>
<td><input name="task" type="text" /></td>
</tr>
<tr>
<td>Description</td>
<td><textarea name="description"></textarea></td>
</tr>
<tr>
<td>Date</td>
<td><input name="date" type="date"/></td>
</tr>
ParcialmenteTask.java componente
@Component("task")
public class Task {
private long id;
private String task;
private String description;
private Date date;
private Date deadline;
private Category category;
private Priority priority;
private State state;
private User user;
private User userResponsible;
private String evaluation;
private Date timestamp;
private int pending;
ParcialmenteControlador de tarefas
@RequestMapping("/createtask")
public String createTask(Model model) {
List<Category> categories = taskService.getCategories();
List<Priority> priorities = taskService.getPriorities();
List<State> states = taskService.getStates();
List<User> users = taskService.getUsers();
model.addAttribute("categories",categories);
model.addAttribute("priorities",priorities);
model.addAttribute("states",states);
model.addAttribute("users",users);
return "createtask";
}
@RequestMapping(value="/docreatetask", method=RequestMethod.GET)
public String doCreateTask(Model model, Task task) {
System.out.println(">TaskController doCreateTask " + task);
return "taskcreated";
}
Alguma idéia do que isso possa ser?
Desde já, obrigado!
Novas informações extras sobre o erro Adicionei algumas anotações de validação e recebi novas informações sobre o erro.
Erro de campo no objeto 'tarefa' no campo 'data': valor rejeitado [01/01/2001]; códigos [typeMismatch.task.date, typeMismatch.date, typeMismatch.java.util.Date, typeMismatch]; argumentos [org.springframework.context.support.DefaultMessageSourceResolvable: codes [task.date, date]; argumentos []; mensagem padrão [data]]; mensagem padrão [Falha ao converter o valor da propriedade do tipo 'java.lang.String' para o tipo obrigatório 'java.util.Date' para a propriedade 'date'; a exceção aninhada é org.springframework.core.convert.ConversionFailedException: falha ao converter do tipo java.lang.String para o tipo @ org.springframework.format.annotation.DateTimeFormat java.util.Date para o valor '01 / 01/2001 '; exceção aninhada é java.lang.IllegalArgumentException: Não foi possível analisar '01 / 01/2001 ']