SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Javaで軽快に使える「軽量フレームワーク」特集

Javaで軽快に使える「軽量フレームワーク」特集
~小さなライブラリ1つで動くStripes Framework(1)

第17回

  • X ポスト
  • このエントリーをはてなブックマークに追加

メッセージの日本語化

 しかし実際に使ってみると、このバリデーションには少々問題があることに気が付くでしょう。それは「メッセージがすべて英語である」という点です。このままではちょっと使いにくいので、メッセージを日本語化しましょう。

 Stripesで使用されるメッセージ類は、「StripesResources.properties」というプロパティファイルにまとめられています。今回、必要となるメッセージは以下の部分になります。

stripes.errors.header=<div style="color:#b72222; font-weight: bold">Please fix the following errors:</div><ol>
converter.number.invalidNumber=The value ({1}) entered in field {0} must be a valid number
validation.required.valueNotPresent={0} is a required field
validation.minlength.valueTooShort={0} must be at least {2} characters long
validation.maxlength.valueTooLong={0} must be no more than {2} characters long
validation.minvalue.valueBelowMinimum=The minimum allowed value for {0} is {2}
validation.maxvalue.valueAboveMaximum=The maximum allowed value for {0} is {2}

 それぞれ3箇所に分かれて記述されているので、よく探してみてください。そしてこれらの値を、分かりやすい日本語に書き換えてみましょう。

stripes.errors.header=<div style="color:#b72222; font-weight: bold">※以下の入力ミスがあります。</div><ol>
converter.number.invalidNumber=入力された"({1})"は不正な値です。{0}には整数が必要です。
validation.required.valueNotPresent={0}が入力されていません。
validation.minlength.valueTooShort={0}は{2}文字入力してください。
validation.maxlength.valueTooLong={0}は{2}文字以下にしてください。
validation.minvalue.valueBelowMinimum={0}は、{2}以上の値が必要です。
validation.maxvalue.valueAboveMaximum={0}は、{2}以下の値が必要です。
再びフォームを送信してみる。今回は、エラーメッセージはすべて日本語で表示されるようになった
再びフォームを送信してみる。今回は、エラーメッセージはすべて日本語で表示されるようになった

 これでエラーメッセージも日本語に変わります。この種のリソースファイルは使用言語に合わせてローカライズしたファイルを用意していくものですが、今回は「このようにファイルを書き換えればシステムのメッセージも簡単に変えられる」という一例として考えてください。

メッセージを整理する

 このサンプルでは、エラーメッセージはすべてまとめてフォームの上に表示されました。これをもう少し整理し、各フィールドの下に表示されるようにしてみましょう。これは、JSPの記述を少し修正するだけで行えます。

<stripes:form beanclass="jp.codezine.HeloActionBean">
  <table>
    <tr>
      <td>Result:</td>
      <td>${actionBean.result}</td>
    </tr>
    <tr>
      <td>TEXT:</td>
      <td><stripes:text name="TEXT" /><br>
      <stripes:errors field="TEXT"/></td>
    </tr>
    <tr>
      <td>NUMBER:</td>
      <td><stripes:text name="NUMBER" /><br>
      <stripes:errors field="NUMBER"/></td>
    </tr>
    <tr>
      <td colspan="2">
        <stripes:submit name="submit" value="Submit" />
      </td>
    </tr>
  </table>
</stripes:form>
各フィールドごとにエラーが表示されるようになる
各フィールドごとにエラーが表示されるようになる

 先ほどのサンプルでは、フォームの冒頭に<stripes:errors />というタグを用意しましたが、ここでは各フィールドのタグの後に用意しています。それぞれにfieldという属性を用意することで、指定したフィールドでのエラーに絞って表示をするようにしているのです。これでようやく実用的なフォームになったと言えそうです。

まとめ

 今回はStripesの導入編として、Webアプリケーションの基本的な構成から、ごく簡単なフォームを使ったやりとりまでを一通り説明しました。ごく基本部分だけしか説明できませんでしたが、StripesによるWebアプリケーションというのがどのような形で作成されるのか、全体的なイメージぐらいはつかめたことでしょう。

 Stripesの働きを整理するなら「フィルタを使い、JSPの独自タグとActionBeanを連携して動かすための仕組みを提供するもの」と言えるでしょう。独自に定義されたタグを使ったJSPの作成は、JSP利用者にはなじみのあるものですし、Beanの設計もごくシンプルなクラス定義に過ぎず、特殊な設定ファイルや命名ルール、複雑なメソッドの実装などはまったくありません。ごくありふれたシンプルなコードを書くだけで、コントローラーとビューがきれいに分離されたしっかりとしたWebアプリケーションが作成できます。このシンプルさは、他に見られないものではないでしょうか。まさに「軽量フレームワーク」の名を冠するにふさわしいソフトウェアと言えるでしょう。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Javaで軽快に使える「軽量フレームワーク」特集連載記事一覧

もっと読む

この記事の著者

掌田 津耶乃(ショウダ ツヤノ)

三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5249 2010/07/02 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング