java - 如何使用java8 api(LocalDateTime)将LocalDateTime从jsp传递到 Controller ?

标签 java spring jsp controller java-8

我需要你的帮助。假设我的 JSP 中有 form:form,并且 form:form 内部是带有日期的 form:input .. 如下所示:

    <form:form modelAttribute="personalTask" method="POST" action="${pageContext.request.contextPath}/taskmgr/add">
    (...)
            <div class="input-group">
                    <form:input path="startDate" type="date" id="startDateTimePicker" name="search_message[displayDateFrom]" placeholder="YYYY-MM-DD hh:mm:ss" class="input-sm form-control"></form:input>
                    <div class="input-group-addon">
                            <span class="glyphicon glyphicon-calendar"> </span>
                    </div>
            </div>  
    (...)
    </form:form>

在 Controller 中我有方法:

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public String addProfileTask(@ModelAttribute("personalTask")PersonalTask task, Principal principal){

            return "taskManager";
    }

个人任务看起来像:

    public class PersonalTask{
    (...)
            @Column(name = "START_DATE", columnDefinition="TIMESTAMP", nullable = false)
            private LocalDateTime startDate;
    (...)
            public LocalDateTime getStartDate() {
                    return startDate;
            }
            public void setStartDate(LocalDateTime startDate) {
                    this.startDate = startDate;
            }
    (...)
    }

问题是...如何从 JSP 传递日期时间并与 @ModelAttribute("personalTask​​")PersonalTask​​ 任务绑定(bind)?

最佳答案

使用Spring Converters ,spring已经有内置转换器@DateTimeFormat对于 DateTime 数据类型,从文档来看,它已经支持 java.time.LocalDateTime

Supports formatting by style pattern, ISO date time pattern, or custom format pattern string. Can be applied to java.util.Date, java.util.Calendar, java.lang.Long, Joda-Time value types; and as of Spring 4 and JDK 8, to JSR-310 java.time types too.

示例:

public class PersonalTask{
    @DateTimeFormat(pattern="dd/MM/yyyy")  // or any pattern you prefer 
    @Column(name = "START_DATE", columnDefinition="TIMESTAMP", nullable = false)
    private LocalDateTime startDate;
}

关于java - 如何使用java8 api(LocalDateTime)将LocalDateTime从jsp传递到 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43902548/

相关文章:

java - 如何忽略创建 jira api 请求负载中的额外字段?

spring - 如何运行独立/交互式 Spring Boot CRaSH Shell 应用程序?

Spring安全3.1 : session concurrency control not working,为什么?

javascript - JSP 代码如何操作 Ajax javascript 代码中的值?

java - 添加到 ModelAndView 的变量似乎消失了

java - 错误:Execution failed for task ':app:compileDebugAidl'

java.lang.NullPointerException

java - 评估 spring web flow 中的表达式

javascript - 如何使用 javascript 在行尾添加连字符

java - 将 SSL 代码从常规 Java 应用程序转换为适用于 Android 的 SSL 代码