|
Struts 14章 validation.xmlの設定
14.2. 変数intRangeルールやminlengthルールでは、<var>要素を用いて数値の範囲や文字列の長さを設定していました。定数と同じく、この値を他の箇所で参照することができます。例えばエラーメッセージの表示に、maxlengthルールで指定した文字列の長さを渡したい場合が考えられます。 まず変数の参照について説明する前に、メッセージの表示に、任意の値を渡す方法について説明します。Beanタグライブラリのmessageタグと同じように、メッセージがjava.text.MessageFormatの形式に従う場合に、そのパラメータに値をセットすることができます。例えばメッセージが {0}は長さ{1}以下の文字列でなければなりません。
となっていた場合、{0}〜{2}のパラメータに値をセットすることができます。<arg0>〜<arg3>要素は、パラメータに値をセットするためのものです。それぞれ<arg0>が{0}に、<arg1>が{1}に対応しています。<arg0>〜<arg3>要素は、<field>要素内で<msg>要素の後、<var>要素の前に定義します。例えば以下のようになります。 <field property="name" depends="maxlength"> <arg0>〜<arg3>要素の各属性の意味は次の通りです。
例の場合には、パラメータ{0}にはリソースバンドルからnameで検索してきた値が、パラメータ{1}には10がセットされます。 続いて<var>要素で定義した変数の参照について説明します。上記の例にも言えますが、検証ルールに渡すために定義した変数の値を、メッセージのパラメータにセットしたい場合が考えられます。変数の参照は、${var:変数名}の形式で行います。上記の例は、以下のように書き換えることができます。 <field property="name" depends="maxlength"> ${var:maxlength}で参照を行っており、対応する<var>要素で定義されている10がセットされます。なお変数の参照を行える箇所は、定数と同じく
です。また変数が定義されている<field>要素内でしか参照することはできません。 (実習課題2)13章の実習課題2のWebアプリケーションを改良しなさい。
|
![]()
![]()
|