Подтвердить что ты не робот

Spring формат даты mvc с формой: ввод

У меня есть hibernate entity и 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"

Когда я перехожу к своему URL-адресу, я вижу:

my form

Как я могу заставить его иметь формат mm/DD/yyyy? Thanx

4b9b3361

Ответ 1

Решение состоит в том, чтобы положить <mvc:annotation-driven/> в MVC-диспетчерская-servlet.xml а также xmlns: mvc = "http://www.springframework.org/schema/mvc" к началу XML файла.

Ответ 2

Вы можете использовать fmt: formatDate jstl tag:

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

Ответ 3

в моем коде я использую такое связующее:

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

Ответ 4

В HTML5 есть тип ввода = "дата", то же самое в Spring (Chrome, Opera и я тоже этот Safary, но еще не в Firefox

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