0

Struts 1.3.10 を使用して記述されたレガシー アプリをサポートしており、検証 xml フレームワークを使用しています。1 つのアクションを使用して POST されたリクエストを処理し、別のアクションにリダイレクトして表示します。POST されたフォーム データを処理するときは、フォーム Bean を読み取り、セッション スコープの一時オブジェクトに格納し、表示する必要があるときにそのオブジェクトから読み取ります。(これは、投稿後の古典的なリダイレクト パターンです)。

次のようになります。

user posts to Action1 --> [Process, load Session Object] --> Redirect to DisplayAction --> [pull from Session Object for display] --> user gets what they requested.

ユーザーが送信してエラーが発生すると、検証エラーが Struts によって DisplayAction.do に送信されます。これは、入力された最新かつ最高のデータが失われないようにするためです。

ユーザーが住所を入力するフォームがあり、検証は最初のパスでは正常に機能していますが、後続のパスでは機能していません。つまり、ユーザーが最初に郵便番号を省略した場合、struts はそれを正しく認識し、DisplayAction にリダイレクトします。エラースタイルなどはすべて正常に機能しています。ユーザーがエラーを修正すると (2 回目のパス)、すべてのフィールドにスペースがある場所に "+" 記号が挿入されます。つまり、"10 Oak Street" のような住所は "10+Oak+Street" と表示されます。特殊文字チェックに失敗し、データが不良であると主張し続け、ユーザーが動けなくなります。

「+」が挿入される理由、またはそれを防ぐ方法を知っている人はいますか? この動作は見たことがありません。

_ロブ

4

0 に答える 0