機能SAMPLE.15 「EzServlet/画面入力値の検証の方法」
今回は、検証機能について説明します。
EzServletでは、入力値検証(validator)を自動的に呼び出す事はしません。開発者が明示的に記述する必要があります。理由は、前回説明した「2009-01-27 - T.RYoken がんばる日記 / TryGun blog」と同じ内容になりますが、押されたボタンによって検証を行うか行わないかは機能によって異なるためです。
入力値の検証は、定型的な内容が多いため、EzServletでは汎用的な検証機構をサポートするutilを用意しています。
単純な検証であれば、それらを利用し複雑なものは、自作すればよいと考えております。
では、EzServletで用意されている検証機能の説明をしたいと思います。
検証機能には、以下の2つが用意されています。
1.入力値に対して、個々のチェックを行う「EzValidation」クラス
2.入力値に対して、一連のチェックを行う「EzValidationFunction」クラス
1.EzValidationクラスについて
EzValidationクラスは、入力値に対して最小単位のチェックを行うクラスです。
具体的にいうと、入力値に対して下記の様なチェックを行います。
・ダブルバイトか。
・シングルバイトか。
・数値か。
・日付として正しいか・
...etc
実際に「数値チェック」を行うソースを見てみましょう
String value = "100"; if(EzValidation.isNumeric(value)) { System.out.println(value+"は数値です。"); } else { System.out.println(value+"は数値ではありません。"); }
メソッドの説明は、不要だと思いますが、簡単に説明します。
まず、EzValidationの全メソッドはstaticメソッドです。
シグニチャには、「入力値」であるStringの文字列を受け渡します。
戻り値は、条件をみたしていればtrueを返し、満たしていなければfalseを返します。
2.EzValidationFunctionクラスについて
EzValidationFunctionクラスは、入力値に対して、一連のチェックを行なうクラスです。
具体的にいうと、入力値に対して下記の様なチェックを行います。
・半角文字チェック - 必須チェック、禁止文字チェック、シングルバイトチェック、桁数チェック
・数値(正数のみ)チェック - 必須チェック、禁止文字チェック、数値(正数のみ)チェック、
正数桁数チェック、入力必須桁数チェック
・数値(正数少数)チェック - 必須チェック、禁止文字チェック、数値(正数少数)チェック、
正数桁数チェック、少数桁数チェック、入力必須桁数チェック
...etc
実際に「数値(正数少数)チェック」を行うソースを見てみましょう
String value = "100"; // チェック結果を保持する属性の宣言と初期化を行ないます。 EzMessage message = new EzMessage("プロパティー・ファイルのPATH"); // 入力値の数値(正数少数)妥当性チェックを行ういます。 if(EzValidationFunction.checkNumeric("プロパティー・キー", 0, 10, 0, 5, value, true, message)) { System.out.println(value+"は数値です。"); } else { System.out.println(value+"は数値ではありません。"); }
それでは、メソッドの説明をします。
まず、EzValidationFunctionの全メソッドはstaticメソッドです。
シグニチャの内容は下記のとおりです。
第1引数:画面の入力項目に対応するプロパティー・キー(または名称そのもの):String型
第2引数:入力必須となる正数の最小桁数を設定:int型(入力必須で無い場合は0を設定)
第3引数:入力可能となる正数の最大桁数を設定:int型
第4引数:入力必須となる少数の最小桁数を設定:int型(入力必須で無い場合は0を設定)
第5引数:入力可能となる少数の最大桁数を設定:int型
第6引数:入力値を設定:String型
第7引数:入力値が必須か任意かを設定:boolean型(true:必須,false:任意)
第8引数:エラーメッセージを格納するEzMessage(詳細は次回で説明)
*数値項目以外のチェックでは、シグニチャの「第5,6引数」は存在しませんが、他の同じ構成になります。
冒頭でも記述しましたが、利用が必須ではないので独自のvalidatorや他のフレームワークのvalidatorを利用するのは自由です。
EzValidationだけは使えると判断された場合は、それだけ利用すればよいのです。。。
超かーんたーん(o^∀^)oネッ♪