エラーメッセージを表示するには?
それにしても、コンバーターやバリデーターでエラーが起こったとき、ただ「処理が実行されない」というだけなのは困ります。どういうエラーが起こったのか表示できるようにしたいものですね。
これは、実はとても簡単に行えます。エラーメッセージを表示するためのタグをJSPに用意すればいいのです。ちょっと先の例を修正しましょう。
<h:form>
<p><h:message for="field1"></h:message></p>
<h:inputText id="field1" binding="#{page1Bean.field1}" converter="int_conv">
<f:validator validatorId="range_vali"/>
<f:validateLongRange minimum="10" maximum="100" />
</h:inputText>
<h:commandButton value="送信" action="#{page1Bean.button1_action}" />
</h:form>
問題が発生すると、エラーメッセージが表示される。 |
ここでは、<h:message for="field1">というタグが記述されていますね。これは、forで指定したコントロールでエラーが発生すると、その内容を表示するものです。実際にさまざまな値を送信して、どのように表示されるかみてみましょう。
ここでのエラーメッセージは、すべて英語です。これはJSFに標準で設定されているのが英語メッセージだけだからです。日本語化することは可能ですが、そのためにはJSFの国際化に関する知識がなければいけません。とりあえず今回は、英語でメッセージを表示するところまでできればよしとしましょう。(国際化については、いずれまたの機会に……)