私はJava EEアプリケーションを持っており、日付を検証したいと思います。JSR 303 - javax.validation - 日付を確認する
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
...
@NotNull
@Size(min = 1, max = 255)
private String myString;
しかし、今、私は私が検証したい二つの日付を持っている:私はこれを行う文字列で 。フロントエンドシステムでは、JSONを介して転送されるテキストフィールドに文字列を書き込むことができます(テキストフィールドを使用する必要がありますが、datepickerは使用できません)。
だから私のバックエンドは、自分のドメインクラスでこれを持っているん:
@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を使用することです。
お手数ですが、よろしくお願いします。
いくつかの事柄: '@ DateTimeFormat'はJSR-303の一部ではなく、' mm'は数ヶ月ではなく月を表します。 '' dd.MM.yy ""から "" dd.MM.yyyy "'への変更はどのように失敗するのでしょうか? Spring MVC(このアノテーションが含まれています)を使用しているように思われるので、あなたの質問を修正/再タグすることができます。少なくとも、JSR 303は、このために[any](http://download.oracle.com/javaee/6/api/javax/validation/constraints/package-summary.html)アノテーションを提供していません。 – BalusC
はい、 'dd.MM.yyyy'に変更できますが、検証はありません。 – Tim
また、 'Date'は内部フォーマットに関する情報を保存しないので、パターン検証が' String'の代わりに 'Date'にどのように役立つのか理解できません。とにかく、私は春はしませんが、あなたは[Validator](http://static.springsource.org/spring/docs/3.0.x/reference/validation.html)を実装する必要があると思います。少なくともJSFの場合はどうすればいいのですか。 – BalusC