序文
データ検証は、ほとんどすべてのアプリケーションが行う必要があるタスクです。ユーザーが入力したデータはサーバーに送信されます。神は、ユーザーが入力したデータが合法であるかどうか、そしてそれが悪意があるかどうかを知っています。したがって、堅牢なアプリケーションシステムは、ユーザーの入力を検証し、アプリケーション外の違法入力をブロックし、これらの違法な入力がシステムに入るのを防ぐ必要があり、それによりシステムの安定性とセキュリティを確保する必要があります。
私たちは皆、より良いユーザーエクスペリエンスとより高い効率のために、現在のWebアプリケーションに次の2つのデータの検証があることを知っています。
クライアントデータ検証は、主にJavaScriptコードを介して行われます。サーバー側のデータ検証は、違法データをブロックするためのアプリケーション全体の最後の防衛線であり、主にアプリケーションでのプログラミングを通じて実装されています。
開発者のワークロードを削減し、作業効率を向上させるために、Struts2フレームワークはデータ検証にも多くの努力を注いでいます。では、Struts2はどのようにしてデータ検証を完了しますか? (Struts2フレームワークのクライアント検証機能は弱いため、要約されません。この記事は、主にStruts2フレームワークのサーバー側のデータ検証機能を要約しています)
検証ルールファイルを記述します
私たちは皆、データ検証がすべて面倒なコードであることを知っています。これらの面倒なコードから抜け出すために、Struts2フレームワークは構成ファイルに基づいてデータ検証を提供します。検証ルールファイルの作成のみが必要です。検証ルールファイルは、各フォームフィールドを満たすべきルールを指定します。
デモの例を介して、struts2フレームワークの入力検証について話しましょう。
フロントデスクページ:
<body> <form action = "login" method = "post"> username:<input type = "text" name "name" /> <s:fielderror fieldname = "name" /> <br>パスワード:<入力タイプ= "パスワード" name = "password =" password " /> <s:s:fielderror fieldname =" passwerd " />> <inage" /> <" /> < FieldName = "age" /> <br>誕生日:<入力タイプ= "テキスト" name = "batirnd" /> <s:fielderror fieldname = "Birthday" /> <br> <入力タイプ= "submit" value = "submit" /> < /form> < /body>
バックグラウンドアクション処理コード:
パブリッククラスのログニューションはactionsupportを拡張します{private string name;プライベート文字列パスワード。プライベートインクエイジ;プライベートデートの誕生日;プライベート文字列のヒント。 public void setName(string name){this.name = name; } public string getname(){return name; } public void setPassword(string password){this.password = password; } public string getPassWord(){パスワードを返します。 } public void Setage(int age){this.age = age; } public int getage(){return age; } public void setbirthday(date Birthday){this.birthday = Birthday; } public date getBirthday(){return Birthday; } public void settip(string tip){this.tip = tip; } public string getTip(){return tip; } public string execute()スロー例外{//操作はここで簡素化されます。成功を返す; }}上記のアクションコードを使用して、フィールド検証コードを追加しなかったことがわかりますが、次のように検証ファイルを記述するだけでいいことがわかります。
<?xml version = "1.0" encoding = "utf-8"?> <! - 検証構成ファイルのDTD情報を指定します - > <!doctype検証官public " - // apache struts // xwort validator 1.0.2 // en"検証ファイルのルート要素 - > <balidators> <! - 検証構成ファイルの名前属性を検証します - > <field name = "name"> <! - 名前属性が必要なルールを満たす必要があります - > <field-validator type = "reburnestring"> <param name = "trim"> true </param> <メッセージ<field-validator type = "regex"> <param name = "regexexpression"> <![cdata [(/w {4,25})]]> </param> <message>入力するユーザー名は文字と数字のみであり、長さは4と25 </メッセージ> </validator> <field-validator type = "rebultingString"> <param name = "trim"> true </param> <message>パスワードは入力する必要があります</message> </field-validator> <field-validator type = "regex"> <param name = "regexpression"> <![cdata [(/w {4,25})]長さは4〜25でなければなりませんアクションの誕生日プロパティ - > <フィールド名= "誕生日"> <field-validator type = "date"> <param name = "min"> 1900-01-01 </param> <param name = "max"> 2050-02-21 </param> <メッセージstruts2の検証ファイルルールは、struts1の検証ファイル設計方法とは異なります。 Struts2の各アクションには検証ファイルがあるため、検証ファイルのファイル名は次のルールに準拠する必要があります。
<アクション名> -Validation.xml
以前のアクション名を変更でき、後続の-validation.xmlパーツは常に固定されており、確認ファイルはアクションクラスファイルと同じパスに保存する必要があります。
タイプ変換障害と同様に、入力検証が失敗すると、Struts2は「入力」という名前の結果を自動的に返すため、struts.xmlファイルに「入力」という名前の結果を構成する必要があります。
国際化の迅速な情報
検証の障害の場合、ユーザーにエラーメッセージが求められる必要があります。そのため、問題が発生しました。多言語環境では、対応する言語のプロンプト情報を正しく促す方法は?上記のように、検証ファイルに直接書き込むことはできません。国際化のプロンプト情報については、メッセージ要素のキー属性を指定します。これは、国際化プロンプト情報に対応するキーを指定します。
たとえば、上記の検証ファイルは、次のようにおおよそ書くことができます。
<! - アクションの名前属性を確認します - > <フィールド名= "name"> <! - 指定された名前属性は必要なルールを満たす必要があります - > <field-validator type = "necideString"> <param name = "trim"> true </param> <message key = "name.required"/>> </field-validator> <! name = "regexexpression"> <![cdata [(/w {4,25})]]> </param> <message key = "name.regex"/> </field-validator> </field>内蔵チェッカー
上記の検証ファイルでは、そのようなステートメントを見ることができます。
<field-validator type = "rebultingstring"> <field-validator type = "regex"> ...
ここのタイプ属性値はチェッカーです。 Struts2フレームワーク内に提供される多くの組み込み検証デバイスがあります。これらの組み込み検証デバイスは、ほとんどのアプリケーションの検証ニーズを満たすことができます。これらの検証デバイスを使用するだけです。
減圧ツールを使用して、Xwork-Core-2.3.24.1.jarファイルを開くことができます。 XWork-Core-2.3.24.1.jar/com/opensymphony/xwork2/validator/validatorsパスでは、default.xmlファイルを見つけることができます。このファイルは、struts2のデフォルト検証デバイス登録ファイルであり、コンテンツは次のとおりです。
<?xml version = "1.0" encoding = "utf-8"?> <!doctype validators public " - // apache struts // xwork validator definition 1.0 // en" "http://struts.apache.org/dtds/xwork-validator-definition-1.0.dtd" Verifier-> <VALIDATORNAME = "必須"/> <validator name = "required"/> <! - integer verifier-> <validator name = "int"/> <! - long integer verifier-> <validator name = "long"/> <! - short integer verifier-> <vardator name = "short"/>> < Verifier-> <Validator name = "date"/> <! - expression verifier-> <valifator name = "expression"/> <! - field expression verifier-> <valifator "/> <! - email verifier-> <validator name =" email "/> <! - url verifier-> <valimator"/> <valimator "/> <valimator"/> <valimator name " name = "visitor"/> <validator name = "Conversion"/> <validator name = "Conversion"/> <validator name = "stringlength"/> <validator name = "regex"/> <validator name = "conditionalvisitor"/> </validators> </validators> <
これらの検証デバイスの特定の使用に関して、ここでは例を挙げません。
要約します
この記事では、Struts2フレームワークの検証デバイスを簡単に要約します。ここで説明した検証装置の基本は、それらの使用方法です。最も重要なことは、Struts2検証デバイスのアイデアを習得し、構成を通じてそれらを完了することです。この方法は学ぶ価値があります。他のフレームワークの学習では、この方法も遭遇します。研究、痛み、幸福。
さて、上記はこの記事のコンテンツ全体です。この記事の内容には、すべての人の研究や仕事に特定の参照値があることを願っています。ご質問がある場合は、メッセージを残してコミュニケーションをとることができます。 wulin.comへのご支援ありがとうございます。