ホームページ Java &#&チュートリアル Struts での Validator フレームワークの使用

Struts での Validator フレームワークの使用

Dec 17, 2016 am 10:52 AM


すべてのアプリケーションには、バックエンド データベースに挿入するデータが合法かつ有効であることを確認する責任があります。結局のところ、これらのアプリケーションが依存しているデータが侵害された場合、それは壊滅的なことになります。自分自身を適切に機能させるには?たとえば、正式なリレーショナル データベースを使用するアプリケーションでは、データベース内の各フィールドには、データベースに格納されているデータがある程度正しいことを保証するための独自のルールと制約があります。バックエンド リポジトリ データを使用するアプリケーションは、送信するデータの整合性を保護する責任があります。

標準を満たさないデータを挿入または更新しようとすると、発見されて拒否される可能性があります。この種の検出はアプリケーションの隅々まで広がる可能性があり、ビジネス ロジック層で一部の検証が実行される場合があり、通常、ビジネス ロジック オブジェクトにもビジネス ロジック検証があり、データもバックグラウンドでチェックする必要があります。データベース。

残念ながら、この種の検証はアプリケーション内で広く行われているため、アプリケーションはデータを検証する際にある程度のコードの冗長性を持たせることになります。これはアプリケーションが望んでいることではありません。複数の場所で作業が重複するため、アプリケーションのデプロイメントとメンテナンスにさらに時間がかかるからです。これらの検証ルールをアプリケーション全体で再利用できれば、アプリケーションの柔軟性が高まり、デプロイがより速くなり、カスタマイズが容易になり、プログラムの柔軟性も高まります。

Jakarta Commons Project Validator Framework Introduction
Validator は、David Winterfeldt によって作成されたオープンソース プロジェクトであり、Jakarta Commons のサブプロジェクトでもあります。 Commons プロジェクトは主に、Validator などのいくつかの再利用可能なコンポーネントを提供します。その他のよく知られた Commons コンポーネントには、BeanUtils、Digester、Logging Framework などがあります。 Validator バージョン 1.0 は、2002 年 11 月初旬にリリースされました。

Validator を使用する利点
. Validator フレームワークを使用すると、アプリケーション コードで検証ルールを一般的に定義する場合と比べて、次のような多くの利点があります。
. サーバー側とクライアント側の検証ルールを同じ場所で定義できます。
国際化をサポートします。 Web アプリケーションや標準的な Java アプリケーションに使用されます。
. プログラミングではなく、宣言的なメソッドを使用して実装します。
さらに、Validator の最大の特徴は、プラグ可能性をサポートしていることです。この記事の後半では、Validator フレームワークの組み込み検証ルールを使用して作業をより適切に完了する方法を説明します。さらに重要なのは、Validator フレームワークではバリデータをカスタマイズしてフレームワークに挿入できることです。

StrutsとValidatorの関係
Validatorフレームワーク自体がStrutsフレームワーク上に構築されていることを指摘しておきます。 Validator の作成者である David Winterfeldt は、Struts を使用する過程で、多くの ActionForm クラスで同じ検証ルールを繰り返し使用する必要があり、その結果コードの冗長性が高くなることに気づきました。そこで彼は、この冗長性を排除するために Validator フレームワークを作成することを決定し、Validator が誕生しました。

Validator アーキテクチャは元々 Struts アーキテクチャ用に生まれましたが、Struts アーキテクチャから独立して使用できるように設計および構築されています。この機能により、Struts ベースかどうかに関係なく、このフレームワークを任意のアプリケーションで使用できるようになります。 Struts フレームワークを使用しないからといって、アプリケーションにおける Validator アーキテクチャの役割には影響しません。実際、これが、Validator が Struts プロジェクトの直接の一部ではなく、Jakarta Commons プロジェクトの一部である理由です。

それでは、このフレームワークを Struts ベースのアーキテクチャのような Web アプリケーションに統合してみましょう。この記事の最後では、EJB ベースのアプリケーションなど、他の種類のアプリケーションにこれを適用する方法を紹介します。

Validator コンポーネントの概要
Validator アーキテクチャは次のコンポーネントで構成されます:
Validator; A Validator は、Validator フレームワークによって呼び出される Java クラスです。フレームワークは、構成ファイルで定義されたメソッド シグネチャに基づいて、この Validaotor クラスを呼び出します。通常、各 Validator クラスは個別の検証ルールを提供し、これらを組み合わせてより複雑なルール セットを作成できます。

注: 場合によっては、便宜上、Validator クラスで複数の検証ルールを定義することもできます。各ルールは静的メソッドであり、クライアント状態情報は含まれません。

フレームワークには 14 のデフォルトの検証ルールが用意されており、これらのルールは Validator フレームワークの「基本ルール」とも呼ばれます。これらの基本ルールは表 1 に示すとおりです。byte、short、integer、値が対応する基本データ型に変換できるかどうかを検証します
Long、float、double
CreditCard 入力フィールドが有効なクレジット カード番号であるかどうかを検証します
date 入力フィールドが有効な日付であるかどうかを検証します
email 入力フィールドが正規表現と正常に一致するかどうかを確認します
maxLength 値の長さが指定された最大長以下であるかどうかを確認します
minLength 値の長さが指定された最小長以上であるかどうかを確認します
range 値の範囲が最大値と最小値の間にあるかどうかを確認します
必須 入力フィールドが空でないか、またはスペースを含まない値の長さが0より大きいかどうかを確認します
表1
表 1 からわかるように、Validator フレームワークは、Web アプリケーションに必要な検証ルールのほとんどを提供します。これらの既存の検証ルールを使用して、独自の検証プロファイルを作成できます。それでも、前述したように、また後で説明するように、ニーズに応じてさらにバリデーターを自由に追加できます。

それでは、Struts アーキテクチャに基づいたアプリケーションでこれらの基本的なバリデーターを構成して使用する方法について説明します。
Validator フレームワークを柔軟にしているのは、すべての検証ルールとその特定の詳細が外部ファイルの構成宣言を通じて実装されていることです。アプリケーションはこれらの特定の検証ルールを知る必要はありません。この機能を使用すると、アプリケーションのソース コードに触れることなく、ルールセットを拡張および変更できます。これは、各インストールをパーソナライズしたい場合、またはニーズが変化した場合に非常に重要です。
Struts 1.1 の Validator フレームワークを使用する場合、2 つの構成ファイルを使用します。1 つは validator-rules.xml と呼ばれ、もう 1 つは実際には validation.xml と呼ばれます。これらに任意の名前を付けることも、Merged という名前を付けることもできます。 1 つの XML ファイルにまとめられます。ただし、それぞれに独自の用途があるため、分けて保管することをお勧めします。

注: Jakarta Web サイトから Validator をダウンロードした場合、これら 2 つのファイルは含まれません。これら 2 つのファイルは、Validator フレームワークを含む Struts ダウンロードにのみ含まれています。
validator-rules.xml ファイル
validator-rules.xml ファイルは、アプリケーションが使用できるバリデーターを定義します。 validator-rules.xml はテンプレートとして機能し、すべてのアプリケーションで使用できるバリデーターを定義します。

注: この XML ファイルと、以下で説明する別の XML ファイルは、クラス ローダーが見つけられる場所に配置する必要があります。 Web アプリケーションで Validator フレームワークを使用する場合、正しい場所は WEB-INF の下にある必要があります。
validator-rules.xmlファイルは、jakarta.apache.org/struts/dtds/validator-rules_1_1.dtdからダウンロードできるvalidator-rules_1_1.dtdの管理対象となります。このファイルの具体的な詳細を検討するのにあまり時間をかけたくありません。ここでは基本的な概要のみを説明します。
validator-rules.xml ファイルの最も重要な要素は、 要素に含まれています。例 1:
例 1: 単純な validator-rules.xml ファイル

< ;global> ;
ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="errors.required"/ >

classname="org.apache.struts.util.StrutsValidator"
method="validateMinLength"
methodparams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,




アプリケーションによって使用される各 Validator は、 要素に対応します。例 1 では、2 つのバリデーターを示します。1 つはリクエスト バリデーターで、もう 1 つは最小長のバリデーターです。 要素は多くの属性をサポートします。これらのプロパティは、このバリデーターがどの正しいクラスとメソッドを呼び出す必要があるかをフレームワークに伝えるために必要です。たとえば、例 1 の request Validator 要素は、この Validator が org.apache.struts.util.StrutsValidator クラスの validateRequest() メソッドを呼び出すことを示しています。バリデーターは別のバリデーターに依存することもあります。たとえば、例 1 の最小長のバリデーターには、このバリデーターが要求元のバリデーターに依存することを示すために使用される、depends 属性が含まれています。 msg 属性は、フレームワークが正しいエラー メッセージを生成するために使用するキー値とリソース バインディングを指定します。リソース バインディングの使用は、エラー メッセージのローカライズに役立ちます。
要素は サブ要素もサポートしており、クライアントによって実行される JavaScript 関数を指定できます。このようにして、サーバー側とクライアント側の検証を同じ場所で指定できるため、アプリケーションのメンテナンスが簡単になります。

Validation.xml ファイル
Validator フレームワークの 2 番目の構成ファイルは、この validation.xml というファイルです。実際、上記は Struts での Validator フレームワークの使用に関する内容です。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Struts フレームワークの原則と実践についての深い議論 Struts フレームワークの原則と実践についての深い議論 Feb 18, 2024 pm 06:10 PM

Struts フレームワークの原理分析と実践的な調査 JavaWeb 開発で一般的に使用される MVC フレームワークとして、Struts フレームワークは優れた設計パターンとスケーラビリティを備えており、エンタープライズ レベルのアプリケーション開発で広く使用されています。この記事では、Struts フレームワークの原理を分析し、読者がフレームワークをよりよく理解して適用できるように、実際のコード例を使用してそれを検討します。 1. Struts フレームワークの原理の分析 1. MVC アーキテクチャ Struts フレームワークは MVC (Model-View-Con) に基づいています。

Struts2フレームワークの動作原理を分析する Struts2フレームワークの動作原理を分析する Jan 05, 2024 am 08:29 AM

Struts2 フレームワークの内部メカニズムを調べる Struts2 は、MVC アーキテクチャに基づく Web アプリケーションの開発に広く使用されている、人気のある JavaWeb アプリケーション フレームワークです。 Struts1 をベースに多くの改良と最適化が行われ、より強力で柔軟な機能が提供されています。 Struts2 フレームワークの内部動作を詳しく調べる前に、いくつかの基本概念を理解する必要があります。 Struts2 フレームワークのコアは MVC (Model-View-Controlle) です。

Java バックエンド開発: Java Apache Struts を使用した API MVC フレームワーク開発 Java バックエンド開発: Java Apache Struts を使用した API MVC フレームワーク開発 Jun 17, 2023 am 10:03 AM

インターネットとスマート モバイル デバイスの普及に伴い、Web アプリケーションの開発の重要性がますます高まっています。 Java は優れたクロスプラットフォーム プログラミング言語として開発者に好まれています。 Java バックエンド開発では、MVC フレームワークを使用すると、開発効率の向上と開発コストの削減に役立ちます。この記事では、JavaApacheStrutsを使用したAPIのMVCフレームワーク開発について紹介します。 1. MVC フレームワーク MVC (Model-View-Control)

Struts フレームワークの原理と応用は何ですか? Struts フレームワークの原理と応用は何ですか? Jan 03, 2024 pm 05:31 PM

Struts フレームワークの原理: Java Servlet/JSP テクノロジを使用することにより、Java EE Web アプリケーションの MVC 設計パターンに基づくアプリケーション フレームワークが実装され、1 つ以上の Action クラスを使用してユーザーのリクエストを処理し、結果をユーザーに返します。 。 Struts フレームワークの適用: 1. Web アプリケーションの構築、2. フォーム データの処理、3. サードパーティ ライブラリの統合、4. 国際化の実装、5. RESTful API の構築。

Java言語によるStrutsフレームワークの紹介 Java言語によるStrutsフレームワークの紹介 Jun 10, 2023 pm 08:00 PM

Java 言語での Struts フレームワークの紹介 Web Web サイトやエンタープライズ アプリケーション システムなどの Web アプリケーションが徐々に普及するにつれて、JavaEE (Enterprise Edition) アーキテクチャが徐々に主流の選択肢になってきました。 JavaEE アーキテクチャでは、MVC (Model-View-Controller) 設計パターンの人気により、Struts フレームワークが一般的に使用される Web アプリケーション フレームワークの 1 つになりました。この記事では、さらに詳しく見ていきます

Struts2フレームワークの動作メカニズムの詳細な分析 Struts2フレームワークの動作メカニズムの詳細な分析 Jan 05, 2024 pm 03:36 PM

Struts2 フレームワークの動作原理の詳細な分析 Struts2 は優れた Java Web アプリケーション開発フレームワークであり、MVC (Model-View-Controller) パターンに基づいた開発手法を提供し、開発者が Web アプリケーションをより迅速に構築および保守できるようにします。 Struts2 フレームワークの動作原理を理解することは、開発者にとって非常に重要です。この記事は、詳細な分析と具体的なコード例を通じて、読者が Struts2 フレームワークの動作原理を深く理解するのに役立ちます。

Struts2フレームワークの実装原理を詳細に分析 Struts2フレームワークの実装原理を詳細に分析 Feb 21, 2024 pm 05:54 PM

Struts2 フレームワークの実装原理の詳細な分析 広く使用されている JavaWeb アプリケーション フレームワークとして、Struts2 フレームワークの優れた設計とパフォーマンスにより、開発者にとってお気に入りのツールとなっています。 Struts2 フレームワークの実装原理を理解することは、開発者のフレームワークの理解とアプリケーション レベルを向上させる上で非常に重要です。この記事では、Struts2 フレームワークの実装原理を詳細に分析し、読者がこのフレームワークをより深く理解できるように具体的なコード例を示します。 1. Struts2 フレームワークの簡単な紹介

Struts フレームワークの原理と応用を探る Struts フレームワークの原理と応用を探る Jan 04, 2024 am 08:19 AM

Struts フレームワークの原理とアプリケーションの詳細な分析 要約: Struts フレームワークは優れた JavaWeb アプリケーション開発フレームワークであり、MVC 設計パターンと一連のタグ ライブラリおよびインターセプタに基づいており、開発者にシンプルで標準化されたアプリケーションを提供します。 Web アプリケーションを構築する方法。この記事では、フレームワークの動作原理、主要コンポーネント、特定のアプリケーションを示すサンプル コードなど、Struts フレームワークの原理とアプリケーションを詳細に分析します。 1. StrutsフレームワークStrutsの動作原理

See all articles