JSR 303 - javax.validation - проверить дату - PullRequest
8 голосов
/ 14 января 2011

У меня есть приложение Java EE, и я хочу проверить дату. Со строкой я делаю это:

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
...
@NotNull
@Size(min = 1, max = 255)
private String myString;

Но теперь у меня есть две даты, которые я хочу подтвердить. Пользователь может во внешней системе написать строку в текстовом поле, которое будет передано через JSON (я должен использовать текстовое поле, я не могу использовать средство выбора даты).

Так что мой бэкэнд имеет это в моем доменном классе:

@DateTimeFormat(pattern = "dd.MM.yy")
@Temporal(value=TemporalType.TIMESTAMP)
private Date myStartDate;

@DateTimeFormat(pattern = "dd.MM.yy")
@Temporal(value=TemporalType.TIMESTAMP)
private Date myEndDate;

Я хочу проверить по формату "dd.MM.yyyy". Как это можно сделать?

И я так не думаю, но есть ли автоматическая проверка, чтобы проверить, предшествует ли дата начала дате окончания? Я нашел только @Future и @Past.

Таким образом, единственное решение - использовать @Pattern, регулярное выражение?!

Заранее благодарю за помощь, С наилучшими пожеланиями.

1 Ответ

4 голосов
/ 14 января 2011

@ DateTimeFormat используется во время привязки веб-данных при отображении параметров запроса на объект (при условии, что вы включили его с помощью <mvc:annotation-driven/> или вручную). Обычно он не используется при десериализации JSON в объект.Как вы читаете в своем JSON?Что вы используете для десериализации?Вы не можете проверить объект Java даты после факта для форматирования, вы должны проверить перед десериализацией.

Нет встроенных ограничений для нескольких полей. Вы захотите написать свой собственный типограничение уровня, если вы хотите сравнить два свойства объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...