首页 > 解决方案 > 如何获取 Localdate 作为参数?

问题描述

我有一个看起来像这样的表格:

<form th:action="@{/viewExpenses}" method="post" class="form-horizontal">
    <div class="form-group">
        <label for="date" class="control-label col-md-3">Date:-</label>
        <div class="col-md-9">
            <input type="date" class="form-control" id="date" th:name="date"/>
        </div>
    </div>
    <div class="form-group">
        <div class="col-md-offset-3 col-md-4">
            <button class="btn btn-primary">View Details</button>
        </div>
    </div>
</form>

现在,当我提交此表单时,我希望将日期值设为LocalDate. 所以在我的控制器上我做了:

@RequestMapping(value = "/viewExpenses", method = RequestMethod.POST)
public String expenseDetails(Model model, @RequestParam("date")
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date) {

    BigDecimal totalExpense = new BigDecimal(0);

    List<Expenditure> e = expenditureService.viewExpenseDetails(date);

    for (Expenditure exp : e) {
        totalExpense = totalExpense.add(exp.getAmount());
    }

    model.addAttribute("showExpenditure", true);
    model.addAttribute("totalExpense", totalExpense);
    model.addAttribute("expenses", e);
    return "finance/expensedetails";
}

现在我在我的控制器中获得日期值作为null. 我已经尝试改变模式,@DateTimeFormat但它仍然无法正常工作。
接收日期参数的正确方法是什么?

标签: javaspring-mvcthymeleaf

解决方案


看起来这里的绑定没有发生。您可以尝试使用 spring:form 标签并通过 modelAttribute 绑定控制器对象。


推荐阅读