スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Spring MVC メッセージリソースを使ってバリデーションエラーを定義

Spring MVCでメッセージリソースファイルを使ってみる。
メッセージの対象はバリデーションエラーとして、メッセージの出力優先順位を検証してみる。

■バリデーションに関する過去の記事
Spring MVC バリデーションの実装

◎動作検証にあたっての各バージョンは以下の通り
  • SpringFramework 3.2.3.RELEASE
  • Java 1.7
  • Tomcat 7.0

1.mvc-config.xml






クラスパス上にある「meesages.properties」または「meesages_ja.properties」などの国際化に対応したメッセージリソースファイルを読み込むよう定義している。

2.バリデーション用のアノテーションを付与したBookFormクラス


package jp.co.sample.book.form;

import java.io.Serializable;
import javax.validation.constraints.Min;
import org.hibernate.validator.constraints.NotBlank;
import org.hibernate.validator.constraints.NotEmpty;

public class BookForm implements Serializable {

private static final long serialVersionUID = 1L;

@NotBlank(message="書籍IDを入力してください")
private String bookId;

@NotEmpty(message="書籍名を入力してください")
private String bookName;

@Min(1)
private String price;

//getter/setterは省略

bookIdとbookNameフィールドに対して、メッセージを設定している。

3.messages.properties


NotBlank={0} is required input.

クラスパス上に定義する。

4.messages_ja.properties


NotBlank={0}は必須入力です

こちらもクラスパス上に定義する。

5.動作確認

メッセージリソース

メッセージはそれぞれ以下のように取得されていることが分かる。
bookId⇒messages_ja.properties
bookName⇒@NotEmptyのメッセージ
price⇒javax.validationで用意されているデフォルトメッセージ


◎まとめ
優先順位をまとめると、messages_ja.properties > messages.properties > アノテーションのメッセージ > デフォルトメッセージ となることが確認できた。(messages_ja.propertiesを削除した場合、messages.propertiesのメッセージが表示される。)

■過去のSpring関連記事
Spring関連記事 Index

スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

bookmount8

Author:bookmount8
システムエンジニア。サーバーサイドでjavaを扱うことが多い。最近は、ミドルやフロント周りも関心あり。

最新記事
カテゴリ
検索フォーム
最新コメント
月別アーカイブ
これまでの訪問者数
ブロとも申請フォーム

この人とブロともになる

RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。