コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

No. 3 Validatorのメッセージ

Validatorのメッセージをプロパティ名から変更するには、以下のようにする。
メッセージリソースに、labels.プロパティ名のリソースを作成しておく。

labels.hoge=ほげ

すると、そのリソースが使われる。

hogeは必須です。

ほげは必須です。

となる。
同じプロパティで違うメッセージを出したい場合には、以下の2つの方法がある。
リテラルで指定する方法。

@Required(target = "insert", arg0 = @Arg(key = "フー", resource = false))

リソースから指定のキーで指定する方法

@Required(target = "insert", arg0 = @Arg(key = "labels.hoge", bundle="application"))

リソースから指定のキーで指定する場合に、bundleを指定しないといけないのがちょっと。bean:messageタグのように、基本はデフォルトというのがいいなあと。
Strutsの頃は、MessageResorceのファクトリは独自のものを使用していて、メッセージリソースを分けてもすべてデフォルトのバンドルになるように改造していたので、バンドルを意識していなかった。
SAStrutsでは独自のファクトリ(org.seasar.struts.util.S2PropertyMessageResourcesFactory)のようなので、この辺も継承して変更できるか確認が必要。
Minlengthなんかでは、デフォルトでパラメータのminlengthの値が表示されるが、任意に出力することもできる。

@Minlength(minlength = 3, arg0 = @Arg(key = "${var:minlength}", resource = false))