Как преобразовать строку из ввода формы (easyui-datetimebox, на случай) в свойство Календара в объекте в контроллере, автоматически закрытом весной?Spring: преобразовать строку из представления в объект календаря
Я читал http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/validation.html, но я не мог найти ничего почти прямо к делу.
JSP:
<input id="DeadLineDate"
class="easyui-datetimebox"
name="DeadLineDate"
value="${SessionDeadLineDate}"
data-options="formatter:myformatter,
parser:myparser
/>
Когда занесена, проверка Пружина выдает ошибку:
Failed to convert property value of type java.lang.String to required type java.util.Calendar for property DeadLineDate; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [java.util.Calendar] for property DeadLineDate: no matching editors or conversion strategy found.
PS: Пружина 3
Редактировать: добавление метода контроллера для выполнения операции:
@Controller
@RequestMapping("/project/MaintainProjectFrm")
@SessionAttributes({"project","SessionDeadLineDate"})
public class MaintainProjectController {
/* ... many methods... */
@RequestMapping(params = "update", method = RequestMethod.POST, produces={"text/plain; charset=UTF-8"})
public String update(@ModelAttribute("project") Project project,
BindingResult result,
SessionStatus status,
ModelMap model,
HttpServletRequest req,
HttpServletResponse resp) throws IOException {
projectValidator.validate(project, result);
if (result.hasErrors()) {
//has errors, in this case, that one shown in text above, which is rendered again in view (JSP)
return "/project/MaintainProjectFrm";
} else {
try{
mpService.updateProject(project);
}
catch(Exception e){
resp.setStatus(500);
resp.getWriter().write("Error updating project: " + e.getMessage());
return "/project/MaintainProjectFrm";
}
status.setComplete();
}
}
/* ... yet other methods ... */
}
Можем ли мы увидеть ваш метод обработчика? –
@SotiriosDelimanolis: конечно, сделано! – Alex
Я использовал @RequestParam для получения DeadLineDate из представления и вручную создаю на нем объект Calendar, обновляя объект Project. Но, разумеется, это не самый лучший способ сделать это! Я хотел бы знать, может ли в каком-то манеже Spring возможность автоматически привязать Календарь к этому свойству. – Alex