Playframework + Javaでyyyy-MM-ddのフォーマットバリデーションエラーを設定する。

概要

PlayframeworkでFormFactoryを使ってバリデーション処理を書くことはあると思うのですが、@Requireを設定してるだけで他のバリデーションについてまともに設定したことがなくて、今回「日付のフォーマット」をバリデーションで弾きたいと思ったのですが1発で文献がなかったのでここに記す。

方法

方法は至ってシンプルで

import play.data.validation.Constraints.Required;

(略)

@Required
public String date;

今までこんな感じで書いていたところを

import play.data.validation.Constraints.Required;
import play.data.validation.Constraints.Pattern;

(略)

@Required
@Pattern(value = "^[0-9]{4}-[0-9]{2}-[0-9]{2}$", message = "Enter in the format yyyy-MM-dd")
public String date;

このような形に修正すれば簡単にバリデーションを追加できます。 ネットで調べると

@Formats.DateTime(pattern = "yyyy-MM-dd")

このようなものができたのですが、僕は日付データを文字列で扱いたかったので先程のような方法をとりました。