当前位置:  开发笔记 > 前端 > 正文

JSP表单日期输入字段

如何解决《JSP表单日期输入字段》经验,为你挑选了1个好方法。

我使用Intellij中的Spring Web应用程序创建了一个包含许多字符串的基本输入表单.当只使用字符串时,表单成功保存到后端,所以我决定在模型中添加一个日期字段,并尝试修改为controller/jsp以在输入表单中接受它(并显示在记录列表中).我遇到输入表单没有获得值的问题.

实体:

@Temporal(TemporalType.DATE)
@DateTimeFormat(pattern="dd.MM.yyyy")
private Date dueDate;

public Date getDueDate() {
    return dueDate;
}

public void setDueDate(Date dueDate) {
    this.dueDate = dueDate;
}

JSP(我假设值应为空白,因为我从一个空字段开始填写?):

    
Due Date:
"/>

控制器:

@RequestMapping(value = "/todos/add", method = RequestMethod.POST)
public String addUser(@ModelAttribute("todo") Todo todo, BindingResult result) {
    System.err.println("Title:"+todo.getTitle());
    System.err.println("Due Date:"+todo.getDueDate());
    todoRepository.save(todo);
    return "redirect:/todos/";
}

我的调试显示截止日期:null,因此发布时表单中的日期字段没有发送任何内容.这意味着永远不会保存日期字段,然后发生存储库保存.



1> Rishav Basu..:

您必须在控制器中注册一个InitBinder,以便将日期字符串转换为java.util.Date对象并将其设置在命令对象中.在您的控制器中包含以下内容:

 @InitBinder
    public void initBinder(WebDataBinder binder) {
        SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
        sdf.setLenient(true);
        binder.registerCustomEditor(Date.class, new CustomDateEditor(sdf, true));
    }

修改你的jsp:

"/>

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有