0

Webアプリケーションで次の問題が発生します。アプリケーションで注文を作成するためのワークフローがあります:

  • 顧客に関する情報の入力(1つのWebフォーム)

  • デバイスに関する情報の入力(別のWebフォーム)

次のステップに進むための各フォームのいくつかの制約:

  • 顧客には、指定する必要のある一連の属性(名、姓、通り、電話番号)があります。

  • 顧客がSMSによる通知を希望する場合は、有効な携帯電話番号を紹介する必要があります

  • デバイス(支払いタイプ(カード/現金/小切手)がdyを取得したデバイスの場合、注文を作成するために顧客が受け入れる一定の金額があります

現在、これらの制約はアプリケーションのソースコードに直接実装されており、これによりアプリケーションの保守が困難になっています(一部のルールはアプリケーションのバージョンから次のバージョンに変更されます)。

注文を作成するときにコードからこれらのチェックを外部化するための良いアプローチは何でしょうか?

Droolsのようなルールエンジンは良い解決策かもしれませんが、検証ルールを定義するビジュアルエディターを介してサイトの管理者に可能性を提供したいと思います。誰かが私にこの状況のた​​めにすでに存在する解決策を勧めることができますか?

4

2 に答える 2

0

ユーザーからの情報を検証するための別のプロセスを作成できます。すべてのリクエストが通過するサーブレットを作成しました (必要に応じて JSP を使用できます)。リクエストが届いたら、リクエスト パラメータを取得し、ユーザーが入力したフォームの種類とともに検証クラスに渡すことができます。検証クラスは必要な検証を行い、失敗したフィールドの名前とともに true または false を返します。

サーブレットが起動すると、データベースまたは XML ファイルに移動し、各フォームに必要なフィールドを取得してキャッシュに保存します。データベースまたは XML ファイルのフィールドは、HTML フォームのフィールドと同じ名前になります。必要なフィールドを追加/削除したい場合は、HTML フォームでフィールドを追加/削除し、データベースまたは XML ファイルからフィールドを追加/削除するだけです。コードの変更は必要ありません。検証データはキャッシュに保存されるため、データベースまたは XML ファイルは、サーバーの起動時に 1 回だけ読み取られます。パフォーマンスが問題にならない場合は、データベースまたは XML ファイルから毎回読み取ることができます。

また、フォーム フィールド名とともに正規表現を保存することで、データが有効であること (姓名に有効な文字があるなど) を検証することもできます。このように、データベースまたは XML ファイルの式を変更するだけで、フィールドの検証方法を変更できます。コードの変更はなく、大幅な再テストもありません。

于 2011-09-21T21:02:42.907 に答える
0

spring-webflow がある程度役立ちます。それ以外の場合は、さまざまなワークフロー/bpm の種類のソリューションが利用可能であり (私は Savvion BPM で一度作業したことがあります)、jboss drools がそこにあると思います。

于 2011-09-21T20:30:41.030 に答える