メッセージの日本語化
しかし実際に使ってみると、このバリデーションには少々問題があることに気が付くでしょう。それは「メッセージがすべて英語である」という点です。このままではちょっと使いにくいので、メッセージを日本語化しましょう。
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アプリケーションが作成できます。このシンプルさは、他に見られないものではないでしょうか。まさに「軽量フレームワーク」の名を冠するにふさわしいソフトウェアと言えるでしょう。
