【问题标题】:Passing date from jsp to controller in spring在春季将日期从jsp传递到控制器
【发布时间】:2019-02-17 18:39:40
【问题描述】:

我有一个表格:

<form method="post" action="/addExpense">
<input type="text" name="description" required>
<input type="number" name="amount" required>
<input type="date" name="created" required>
<input type="date" name="updated" required>
<input type="submit">
</form>

在我的控制器中我有一个方法:

@RequestMapping(value = "addExpense", method = RequestMethod.POST)
@ResponseBody
public String addExpense(@ModelAttribute("expenseDetailDTO") ExpenseDetailDTO expenseDetailDTO) {
    expenseService.addExpense(expenseDetailDTO);
    return "true";
}

ExpenseDetailDTO 内容:

public class ExpenseDetailDTO {
String description;
Long amount;
Date created;
Date updated;
...
}

当我在 throws 400 Bad Request 中提交表单时。在 chrome 开发工具中检查表单数据时,它会显示:

description:description
amount:500
created:2016-01-01
updated:2016-01-01

我认为 Spring 无法从 java.util.Date 中的表单转换日期。

如何将日期传递给控制器​​?

编辑:

为 DateTimeFormat 添加注释:

public class ExpenseDetailDTO {
String description;
Long amount;
@DateTimeFormat(pattern = "yyyy-MM-dd")
Date created;
@DateTimeFormat(pattern = "yyyy-MM-dd")
Date updated;
....
}

仍然给出 400 Bad Request。

【问题讨论】:

    标签: java spring


    【解决方案1】:

    使用以下注释

    @DateTimeFormat(pattern="yyyy-MM-dd") Date created @DateTimeFormat(pattern="yyyy-MM-dd") Date updated

    关于您的 ExpenseDetailDTO 类日期属性

    【讨论】:

      【解决方案2】:

      您应该使用 Spring DateTimeAnnotation 格式化日期

      【讨论】:

        【解决方案3】:

        在控制器中使用 initbinder 方法绑定来自 jsp 的日期值。

        @InitBinder
        protected void initBinder(WebDataBinder binder) {
        SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
        binder.registerCustomEditor(Date.class, new CustomDateEditor(
                dateFormat, false));
        }
        

        【讨论】:

          猜你喜欢
          • 2012-04-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-05-16
          • 2022-01-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多