带有表单的spring mvc日期格式:输入

Posted

技术标签:

【中文标题】带有表单的spring mvc日期格式:输入【英文标题】:spring mvc date format with form:input 【发布时间】:2013-08-12 08:56:08 【问题描述】:

我有休眠实体和一个 bean:

@Entity
public class GeneralObservation 
    @DateTimeFormat(pattern = "dd/MM/yyyy")
    Date date;

    @Column
    public Date getDate() 
        return date;
    

    public void setDate(Date date) 
        this.date = date;
    

我也有

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

        form:input
                id = "datepicker"
                name="date"
                itemLabel="date"
                path="newObservation.date"

当我转到我的网址时,我看到:

如何强制它具有 mm/DD/yyyy 格式?谢谢

【问题讨论】:

@DateTimeFormat(pattern = "dd/MM/yyyy")new SimpleDateFormat("dd/MM/yyyy") 都使用 dd/MM/yyyy。您是否尝试将它们更改为mm/DD/yyyy 请参考***.com/questions/3457134/… 不,这无济于事,因为 form:input 不允许明确输入默认值。 你用过mvc:annotation-driven吗? 不,我应该把 mvc:annotation-driven 放在哪里? 【参考方案1】:

在我的代码中,我以这种方式使用活页夹:

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

【讨论】:

试试:$(document).ready(function() $(function() $("#datepicker").datepicker( changeMonth : true, changeYear : true, dateFormat : 'dd /MM/yyyy' ); ); 我不需要日期选择器。日期格式不是我所期望的。【参考方案2】:

html5 中有输入 type="date",在 Spring 中也是一样的(Chrome、Opera 和我也是这个 Safary,但在 Firefox 中还没有

<form:input type="date" ... >

【讨论】:

为什么会出现在 -ve 中?【参考方案3】:

解决办法是把&lt;mvc:annotation-driven/&gt; 到 mvc-调度程序-servlet.xml 还有 xmlns:mvc="http://www.springframework.org/schema/mvc" 到xml文件的开头。

【讨论】:

如果我不使用 xml 作为 dispatcher 怎么办?【参考方案4】:

你可以使用 fmt:formatDate jstl 标签:

<fmt:formatDate value="$yourObject.date" var="dateString" pattern="dd/MM/yyyy" />
<form:input path="date" value="$dateString .. />

【讨论】:

是的,对于不实陈述,我们深表歉意。在我的应用程序中,我遇到了同样的情况,但日期格式是正确的(就像我在字段前的 DateTimeFormat 注释中指定的那样)。不仅字段的表示是正确的:我没有 @InitBinder 方法并且所有工作都正确。也许我有更新版本的 spring 库(3.1.1.RELEASE)?

以上是关于带有表单的spring mvc日期格式:输入的主要内容,如果未能解决你的问题,请参考以下文章

在 Spring MVC 中,无法使用 Jackson @JsonFormat 将输入绑定到日期字段

Spring MVC - 将用户时区的日期转换为 UTC

Excel怎样设置输入日期后提醒是节假日

Springboot中日期映射的设置

springmvc表单提交日期格式,怎么搞

Spring mvc 返回json数组中的日期怎么格式化?