« ④InitBinder を複数、Contoroller別適用 二つ目の試験 | ホーム | ⑥元祖Spring MVC から Spring Bootの時代へ »

2017年9月 3日

⑤SpringValidator単位ごとに記述するメッセージ定義の指定

@Component
public class CustomerNameValidatorTESTforContA implements Validator {

 @Override
 public boolean supports(Class<?> clazz) {
  return (CustomerForm.class).isAssignableFrom(clazz);
 }

 @Override
 public void validate(Object target, Errors errors) {

  CustomerForm customer = (CustomerForm) target;
  String name = customer.getCustomerName();
 ///
  if ( name.length() >= 3 ) {
   return;
  }
  if ( name.length() < 3) {
   errors.rejectValue("customerName", "IncorrectName.inputName", /// application-messges_en.properties
   "Name is larger than 3.(InitValidatorTEST for Terasoluna 5 Spec");
  }
 }
}

==>

一つのバリデータのルール毎に、以下の resources /  i18n / application-messages_ja.properties に3っのメッセージの追加が必要

errors.rejectValue の第1引数の定義 (例)customerName と対応する日本語文言
errors.rejectValue の第2引数の定義 (例)Pattern.customerForm.customerName と対応日本語文言
errors.rejectValue の第3引数の定義 ユーザに対する注意書き文言

application-messages_ja.properties のポジジョンは、
-web /  src / main / resources / META-INF / spring / applicationContext.xml で指定

------------  applicationContext.xml ------------------------------------------
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
<property name="basenames">

<list>
<value>i18n/domain-messages</value>
<value>i18n/application-messages</value>
<value>ValidationMessages</value>
</list>
</property>
</bean>
-----------------------------------------------------------------------------------------------------------------

----------------------------- application-messages_ja.properties ------------------------------------
title.common = ツアー予約システム
label.tr.common.login = ログイン
label.tr.common.logout = ログアウト
label.tr.common.notLoginMessage = ログインしていません。
label.tr.common.gotoMenuMessage = メニューへ
label.tr.common.userId = 会員ID
label.tr.common.reset = リセット
label.tr.common.register = 登録
label.tr.common.required = 必須
label.tr.common.confirm = 確認
label.tr.common.goBackMessage = 戻る
label.tr.common.year = 年
label.tr.common.month = 月
label.tr.common.day = 日
label.tr.common.kana = フリガナ
label.tr.common.name = 氏名
label.tr.common.birthday = 誕生日
label.tr.common.job = 職業
label.tr.common.email = Eメール
label.tr.common.tel = 電話番号
label.tr.common.zip = 郵便番号
label.tr.common.address = 住所
label.tr.common.password = パスワード
label.tr.common.passwordConfirm = 確認パスワード
label.tr.common.adult = 大人
label.tr.common.child = 子供
label.tr.common.search = 検索
label.tr.common.depDate = 出発日
label.tr.common.tourDays = 日数
label.tr.common.depPlace = 出発地
label.tr.common.arrPlace = 目的地
label.tr.common.persons = 人数
label.tr.common.person = 人
label.tr.common.basePrice = 基本料金
label.tr.common.idx = 連番
label.tr.common.tourName = ツアー名
label.tr.common.pageNotFoundMessage = ページが見つかりません。
label.tr.common.pageUnauthorizedMessage = このページを閲覧するには認証が必要です。
label.tr.common.paymentInfo = 支払情報
label.tr.common.paymentMethod = 支払方法
label.tr.common.paymentAccount = 振込口座
label.tr.common.paymentTimeLimit = 支払期限
label.tr.common.paymentInquiry = 問い合わせ
label.tr.common.companyName = TERASOLUNAトラベル カスタマーセンター
label.tr.common.companyEmail = customer@example.com
label.tr.common.companyTel = 01-2345-6789
label.tr.common.paymentCompanyname = テラ銀 テラ支店
label.tr.common.savingsAccount = 普通口座:12345678
label.tr.common.bankTransfer = 銀行振込
label.tr.common.currencyPattern = ##,###円
label.tr.common.datePattern = yyyy年MM月dd日
label.tr.common.personcountPattern = ##人
label.tr.common.pdfdownloadMessage = この情報はPDFでダウンロードできます。
label.tr.common.downloadpdfBtnMessage = PDFをダウンロードする
label.tr.common.specialNotes = 特記事項
label.tr.common.opinionSuggestion = ご意見・ご要望
label.tr.common.userAddress = ユーザ住所(テスト)
e.tr.fw.0001 = リクエストが矛盾しています。
e.tr.fw.0002 = リクエストが許可されていません。
e.tr.fw.0003 = システムエラーが発生しました!
e.tr.fw.0004 = 不正なリクエストです。
e.tr.fw.0005 = CSRFトークンが見つかりません。セッションの有効期限が切れていませんか?
e.tr.fw.0006 = アクセスが拒否されました。
label.tr.menu.menuMessage = メニュー画面です。
label.tr.menu.tourSearchMessage = 条件を指定してツアーを検索できます。<br>\n検索したツアーの予約もできます。予約にはログインが必要です。
label.tr.menu.searchBtnMessage = ツアー検索する
label.tr.menu.loginMessage = ログインするとツアーの予約、照会、変更、キャンセルができるようになります。<br \/>\nログインするためには事前に会員登録が必要です。
label.tr.menu.loginBtnMessage = ログインする
label.tr.menu.customerRegisterMessage = お客様の情報を入力し、会員登録します
label.tr.menu.customerRegisterBtnMessage = 顧客登録する
label.tr.menu.referBtnMessage = 予約を照会する
label.tr.menu.referMessage = ツアーの照会、変更、キャンセルができます。
label.tr.login.loginFormMessage = ログインフォーム
label.tr.login.notCustmerMessage = 会員IDを持っていないお客様は以下のボタンで会員登録を行って下さい。
label.tr.managecustomer.managecustomerMessage = 顧客登録
label.tr.managecustomer.MembershipInfoMessage = 会員情報
label.tr.managecustomer.createFormMessage = <strong>会員情報入力<\/strong> ⇒ 入力内容確認 ⇒ 完了<br>\r\n会員登録する情報をご入力ください。<br>\r\n入力が完了しましたら、「確認」ボタンを押してください。
label.tr.managecustomer.createConfirmMessage = 会員情報入力 ⇒ <strong>入力内容確認<\/strong> ⇒ 完了<br>\r\n入力内容をご確認ください。<br>\r\n確認が完了しましたら、「登録」ボタンを押してください。<br>
label.tr.managecustomer.createCompleteMessage = 会員情報入力 ⇒ 入力内容確認 ⇒ <strong>完了<\/strong><br>\r\n会員登録を完了しました。\r\nお客様の会員IDは <strong>{0}<\/strong><br>\r\n<strong>ログイン時必要ですので忘れないようご注意ください。<\/strong>
label.tr.managecustomer.fullKanaOnlyMessage = 全角カタカナのみ
label.tr.managecustomer.fullOnlyMessage = 全角のみ
label.tr.managecustomer.halfTelOnlyMessage = 半角のみ10桁~13桁
label.tr.managecustomer.halfZipOnlyMessage = 半角のみ
label.tr.managecustomer.halfPasswordOnlyMessage = 半角のみ半角英数字4桁~20桁
label.tr.managecustomer.zipExampleMessage = 例: 262-0002
label.tr.managecustomer.telExampleMessage = 例:01-234506789
label.tr.searchtour.searchTourMessage = ツアー検索画面
label.tr.searchtour.searchTourFlowMessage = <p><strong>ツアー検索<\/strong> ⇒ ツアー情報確認 ⇒ 予約内容確認 ⇒ 完了<\/p>\r\n<p>※登録までの手順<\/p>
label.tr.searchtour.searchTourInstructionsMessage = <ol>\r\n <li>ツアー検索画面で条件を入力し、ツアーを検索してください。<\/li>\r\n <li>検索結果一覧よりツアーを一つ選択してください。<\/li>\r\n <li>ツアー詳細画面でツアーの内容を確認し、問題が無ければ次の画面へ進んでください。(まだ予約はされません。)<\/li>\r\n <li>予約内容を確認し、問題が無ければ予約を行なってください。<\/li>\r\n <li>ツアー予約登録完了画面でツアー詳細情報、会員情報、料金明細、支払情報を確認してください。<\/li>\r\n<\/ol>\r\n<p>条件を指定してツアーを検索し、検索結果よりツアーを選択してください。\r\n ツアーはツアー名のリンクを押すことで選択できます。<\/p>
label.tr.searchtour.SearchCriteriaTourMessage = ツアー検索条件
label.tr.searchtour.depDateRestrictMessage = 本日から1週間後以降の日付を入力してください
label.tr.searchtour.personsRestrictMessage = 大人:12歳以上 子ども:12歳未満
label.tr.searchtour.searchTourResultMessage = ツアー検索結果 (日数の多い順、基本料金の高い順)
label.tr.searchtour.placeMessage = 県名を選択する
label.tr.searchtour.resultCountMessage = {0}件見つかりました。
label.tr.searchtour.titleDetailScreenMessage = ツアー詳細画面
label.tr.searchtour.tourDetailCaptionMessage = ツアー詳細情報
label.tr.searchtour.loginToReserveMessage = 予約する場合は、画面下部の「ログインする」ボタンを押して下さい。
label.tr.searchtour.pressReserveBtnMessage = ツアーの詳細を確認したら、画面下部の「予約する」ボタンを押して下さい。<br\/>\r\nこの時、ご意見・ご要望があれば記入してください。
label.tr.searchtour.logout = ログアウト
label.tr.searchtour.reserve = 予約する
label.tr.searchtour.tourname = ツアー名
label.tr.searchtour.depDay = 出発日
label.tr.searchtour.tourDays = 日数
label.tr.searchtour.depName = 出発地
label.tr.searchtour.arrName = 目的地
label.tr.searchtour.conductor = 添乗員
label.tr.searchtour.accomName = 宿泊施設
label.tr.searchtour.accomTel = 連絡先
label.tr.searchtour.tourAbs = 概要
label.tr.searchtour.representative = 代表者
label.tr.searchtour.customerCode = 会員ID
label.tr.searchtour.customerKana = フリガナ
label.tr.searchtour.customerName = 氏名
label.tr.searchtour.customerBirth = 生年月日
label.tr.searchtour.customerJob = 職業
label.tr.searchtour.customerMail = Eメール
label.tr.searchtour.customerContactInfo = 連絡先
label.tr.searchtour.customerTell = 電話番号
label.tr.searchtour.customerPost = 郵便番号
label.tr.searchtour.customerAdd = 住所
label.tr.searchtour.statementOfCharges = 料金明細
label.tr.searchtour.classificationOnAge = 年令区分
label.tr.searchtour.unitPrice = 単価
label.tr.searchtour.noOfPeople = 人数
label.tr.searchtour.charge = 料金
label.tr.searchtour.adult = 大人
label.tr.searchtour.child = 子ども
label.tr.searchtour.sumPrice = 合計料金
label.tr.searchtour.lessThanEightyCharsMessage = (80文字以下)
label.tr.searchtour.opinionSuggestionMessage = ※ツアーに関するご意見・ご要望などありましたら、ご自由にお書きください
label.tr.searchtour.confirmedMessage = 予約を確定する
label.tr.searchtour.titleConfirmScreenMessage = ツアー確認画面
label.tr.searchtour.reserveScreenTitleMessage = ツアー予約登録完了画面
label.tr.searchtour.reserveScreenFlowMessage = ツアー検索&nbsp;⇒&nbsp;ツアー情報確認&nbsp;⇒&nbsp;予約内容確認&nbsp;⇒&nbsp;<strong>完了<\/strong>
label.tr.searchtour.confirmScreenFlowMessage = ツアー検索&nbsp;⇒&nbsp;ツアー情報確認&nbsp;⇒&nbsp;<strong>予約内容確認<\/strong>&nbsp;⇒&nbsp;完了
label.tr.searchtour.detailScreenFlowMessage = ツアー検索&nbsp;⇒&nbsp;<strong>ツアー情報確認<\/strong>&nbsp;⇒&nbsp;予約内容確認&nbsp;⇒&nbsp;完了
label.tr.searchtour.searchtourReservePdfMessage = 予約内容を確認してください。<br \/>\r\nこの時、「PDFをダウンロードする」ボタンを押せば、予約情報をPDFファイルにして保存出来ます。
label.tr.searchtour.searchtourReserveDetailMessage = <br \/> 支払期限までに、振込口座もしくは窓口まで料金をお支払ください。<br \/>\r\nなお、支払期限までに料金をお支払いいただけない場合は、<br \/> 予約をキャンセルさせていただくことがございますので、<br \/>\r\nあらかじめご了承ください。<br \/> <br \/> 予約明細票はPDF形式でダウンロードできます。<br \/>
label.tr.searchtour.reserveDate = 予約日
label.tr.searchtour.reserveNo = 予約番号
label.tr.searchtour.goTourSearchScreenMessage = ツアー検索画面に戻る
label.tr.managereservation.manageReservationMessage = ツアー予約照会画面
label.tr.managereservation.manageReservationFlowMessage = <strong>予約一覧を確認<\/strong> ⇒ 予約の詳細を確認<\/br>
label.tr.managereservation.manageReservationNoRecordMessage = 現在、ご予約いただいているツアーの詳細閲覧、変更、キャンセルは<br \/> 「予約詳細を見る」「予約を変更する」「予約をキャンセルする」<br \/> をそれぞれ押下してください。<br \/> <br \/>
label.tr.managereservation.manageReservationNoCancelMessage = ツアー料金支払済み、または支払期限の過ぎたツアーの場合は、<br \/>\r\nウェブからツアーの変更、キャンセルはできません。<br \/>\r\n電話(01-2345-6789)、または窓口にてお問合せください。
label.tr.managereservation.ReserveListMessage = 予約一覧&nbsp;&nbsp; <font>※出発日の早い順、予約番号の小さい順<\/font>
label.tr.managereservation.reserveNo = 予約番号
label.tr.managereservation.tourName = ツアー名
label.tr.managereservation.depDay = 出発日
label.tr.managereservation.days = 日数
label.tr.managereservation.origin = 出発地
label.tr.managereservation.destination = 目的地
label.tr.managereservation.noOfPerson = 人数
label.tr.managereservation.paymentStatus = 支払状況
label.tr.managereservation.totalCost = 合計料金
label.tr.managereservation.done = 支払い済
label.tr.managereservation.paymentNotDone = 未払い
label.tr.managereservation.showDetailsBtnMessage = 予約詳細を見る
label.tr.managereservation.changeReservationBtnMessage = 予約を変更する
label.tr.managereservation.cancelReservationBtnMessage = 予約をキャンセルする
label.tr.managereservation.changeReservationFinBtnMessage = 変更を確定する
label.tr.managereservation.changeReservationStaBtnMessage = 変更をやり直す
label.tr.managereservation.returnToListScreenBtnMessage = 予約照会画面に戻る
label.tr.managereservation.updatedScreenFlowMessage = <font>変更内容入力<\/font> &nbsp;⇒&nbsp;<font>入力内容確認<\/font> &nbsp;⇒&nbsp;<font><strong>完了<\/strong><\/font> <br \/>
label.tr.managereservation.updatedFinishMessage = 予約の変更が完了しました。<br> 変更された情報は下記のようになっております。ご確認ください。
label.tr.managereservation.paymentReminderMessage = 支払期限までに、振込口座もしくは窓口まで料金をお支払ください。<br \/> なお、支払期限までに料金をお支払いいただけない場合は、<br \/> 予約をキャンセルさせていただくことがございますので、<br \/>\r\n あらかじめご了承ください。<br \/>
label.tr.managereservation.paymentNoCancelMessage = このご予約はすでに料金をお支払いいただいております。<br \/>\r\n大変申し訳ありませんが、ウェブからの変更、キャンセルは承っておりません。<br \/>\r\nお手数ですが変更、キャンセルのお手続きは電話(01-2345-6789)、または窓口にてお問合せください。<br \/>
label.tr.managereservation.updatedCompleteMessage = 上記のように予約を変更しました。
label.tr.managereservation.manageReservationShowScreenTitleMessage = ツアー予約詳細画面
label.tr.managereservation.manageReservationShowScreenFlowMessage = <font>予約一覧を確認<\/font>&nbsp;⇒&nbsp; <font><strong>予約の詳細を確認<\/strong><\/font>
label.tr.managereservation.manageReservationShowMessage = ご予約いただいたツアーの詳細情報をご確認ください。<br \/>
label.tr.managereservation.manageReservationUpdatedScreenTitleMessage = ツアー予約変更完了画面
label.tr.managereservation.manageReservationConfirmScreenTitleMessage = ツアー予約変更確認画面
label.tr.managereservation.manageReservationConfirmScreenFlowMessage = <font>変更内容入力<\/font> &nbsp;⇒&nbsp;<font><strong>入力内容確認<\/strong><\/font> &nbsp;⇒&nbsp;<font>完了<\/font> <br \/>
label.tr.managereservation.manageReservationConfirmDetailMessage = <p>変更された情報は以下の通りとなっております。\r\n<p>変更内容にお間違いがなければ画面下の「変更を確定する」ボタンを押してください。 &nbsp;<\/p>
label.tr.managereservation.manageReservationConfirmCautionMessage = <p>以下の支払情報に関しましては変更されませんのでご注意下さい。<\/p>
label.tr.managereservation.manageReservationConfirmMessage = <p>上記の内容で予約を変更します。よろしいですか。<\/p>
label.tr.managereservation.manageReservationEditScreenTitle = ツアー予約変更画面
label.tr.managereservation.manageReservationEditFlowMessage = <font><strong>変更内容入力<\/strong><\/font> &nbsp;⇒&nbsp;<font>入力内容確認<\/font> &nbsp;⇒&nbsp;<font>完了<\/font> <br \/>
label.tr.managereservation.manageReservationEditMessage = <p>予約内容を変更後、画面下の「変更を確認する」ボタンを押してください。 &nbsp;<\/p>
label.tr.managereservation.beforecancelScreenTitleMessage = ツアー予約キャンセル確認画面
label.tr.managereservation.beforecancelScreenFlowMessage = <font id=\"navi-present-text\"><strong>キャンセル内容確認<\/strong><\/font>&nbsp;⇒&nbsp;<font id=\"navi-text\">完了<\/font>
label.tr.managereservation.beforeCancelScreenMessage = 下記のツアーをキャンセルする場合は、画面下の「予約をキャンセルする」ボタンを押してください。
label.tr.managereservation.aftercancelScreenTitleMessage = ツアー予約キャンセル完了画面
label.tr.managereservation.aftercancelScreenFlowMessage = キャンセル内容確認&nbsp;⇒&nbsp;<strong>完了;<\/strong>
label.tr.managereservation.night = 泊
label.tr.managereservation.day = 日
label.tr.managereservation.dayTrip = 日帰り
label.tr.managereservation.aftercancelScreenMessage = ツアー予約(予約番号: {0} )のキャンセルが完了しました。
label.tr.managereservation.confirmEditBtnMessage = 変更を確認する
label.tr.common.test = コントローラ別のValidationテスト


Size.customerForm.customerKana = フリガナは{1}文字以下で入力してください。
Size.customerForm.customerName = 氏名は{1}文字以下で入力してください。
Size.customerForm.customerJob = 氏名は{1}文字以下で入力してください。
Size.customerForm.customerMail = Eメールは{1}文字以下で入力してください。
NotEquals.customerPass = パスワードが一致しません。
IncorrectDate.customerBirth = 入力された日付が不正です。
IncorrectDate.inputdate = 入力された日付が不正です。
IncorrectName.inputName = 入力された名前の長さが不正です。(※※テスト)

Pattern.customerForm.customerPass = パスワードは、半角英数字で入力してください。
Pattern.customerForm.customerPassConfirm = 確認パスワードは、半角英数字で入力してください。
Pattern.customerForm.customerTel = 電話番号は半角数字で入力してください。
Pattern.customerForm.customerKana = フリガナは全角カタカナで入力してください。
Pattern.customerForm.customerName = 氏名は全角で入力してください。


# typemismatch
typeMismatch="{0}" is invalid.
typeMismatch.int="{0}" must be an integer.
typeMismatch.double="{0}" must be a double.
typeMismatch.float="{0}" must be a float.
typeMismatch.long="{0}" must be a long.
typeMismatch.short="{0}" must be a short.
typeMismatch.boolean="{0}" must be a boolean.
typeMismatch.java.lang.Integer="{0}" must be an integer.
typeMismatch.java.lang.Double="{0}" must be a double.
typeMismatch.java.lang.Float="{0}" must be a float.
typeMismatch.java.lang.Long="{0}" must be a long.
typeMismatch.java.lang.Short="{0}" must be a short.
typeMismatch.java.lang.Boolean="{0}" is not a boolean.
typeMismatch.java.util.Date="{0}" is not a date.
typeMismatch.java.lang.Enum="{0}" is not a valid value.

customerKana=フリガナ
customerName=氏名
customerBirthYear = 誕生日(年)
customerBirthMonth = 誕生日(月)
customerBirthDay = 誕生日(日)
customerJob = 職業
customerMail = Eメール
customerTel = 電話番号
customerPass = パスワード
customerPassConfirm = 確認パスワード
customerPost = 郵便番号
customerAdd = 住所
depCode = 出発地
arrCode = 目的地
reserveNo = 予約番号
adultCount = 大人
childCount = 子供
tourCode = ツアー番号
remarks = 備考
   

トラックバック(0)

トラックバックURL: http://erikay.cho88.com/cms/mt-tb.cgi/43

コメント(1)

コメントする

このブログ記事について

このページは、TOMO IKEDAが2017年9月 3日 16:09に書いたブログ記事です。

ひとつ前のブログ記事は「④InitBinder を複数、Contoroller別適用 二つ目の試験」です。

次のブログ記事は「⑥元祖Spring MVC から Spring Bootの時代へ」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。