ホームページ >Java >&#&チュートリアル >Struts2 は変換エラーと検証エラーをどのように処理し、適切な入力を保証するのでしょうか?

Struts2 は変換エラーと検証エラーをどのように処理し、適切な入力を保証するのでしょうか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-30 06:15:13526ブラウズ

How Does Struts2 Handle Conversion and Validation Errors and Ensure Proper Input?

Struts2 の INPUT 結果の理解と変換/検証エラーの処理

変換/検証エラー: エラーをブロックしない

Struts2 は変換エラーと検証エラーを 入力エラーをブロックするのではなく、エラー。これは、例外を発生させず、代わりにユーザーに通知し、有効な入力を要求することを意味します。

仕組み

  1. パラメータ インターセプタ: パラメータの設定を試みます。 。 NumberFormatException のような実行時例外が発生した場合、処理またはログに記録されます。
  2. 変換エラー インターセプター: 変換エラーをチェックし、それに応じてフィールド エラーを追加します。元の値は、後続のリクエストで正しい入力を表示するために保存されます。
  3. 検証インターセプター: 要求された検証を実行し、無効なフィールドのフィールド エラーを追加します。
  4. ワークフロー インターセプター: フィールドのエラーをチェックします。何もない場合、実行は続行されます。エラーが見つかった場合は、INPUT 結果 が返されます。
正しいインターセプター順序

メカニズムが確実に機能するようにするには、次のインターセプターがカスタム ファイルに存在する必要があります。正しい順序でスタックします:

    パラメータインターセプター
  • 変換エラー インターセプター
  • 検証インターセプター
  • ワークフロー インターセプター
補足質問: アルファベットがゼロの場合

整数フィールドに入力された場合、それはそのフィールドのゲッターが

0 を返すデフォルトの動作 (int が使用されている場合)。

元の値の処理

変換インターセプターは、後続の使用のために元の値を保存すると主張します。リクエスト。ただし、value 属性が JSP タグで使用されている場合、この動作に一貫性がないというバグが存在しました。このバグは修正されたため、後続のリクエストでは元の値が正しく表示されるはずです。

ベスト プラクティス

    インターセプター スタックを正しく設定します。
  • コードを確認してください。 、特に value 属性の使用。
  • value 属性を使用する場合は、正しい構文を使用してください。例: value = "%{myIntField}"。
  • テストの場合、最初に value 属性を削除して動作を確認し、次にデバッグしてバグを見つけます。

以上がStruts2 は変換エラーと検証エラーをどのように処理し、適切な入力を保証するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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