Struts2 の INPUT 結果の理解と変換/検証エラーの処理
変換/検証エラー: エラーをブロックしない
Struts2 は変換エラーと検証エラーを 入力エラーをブロックするのではなく、エラー。これは、例外を発生させず、代わりにユーザーに通知し、有効な入力を要求することを意味します。
仕組み
- パラメータ インターセプタ: パラメータの設定を試みます。 。 NumberFormatException のような実行時例外が発生した場合、処理またはログに記録されます。
- 変換エラー インターセプター: 変換エラーをチェックし、それに応じてフィールド エラーを追加します。元の値は、後続のリクエストで正しい入力を表示するために保存されます。
- 検証インターセプター: 要求された検証を実行し、無効なフィールドのフィールド エラーを追加します。
- ワークフロー インターセプター: フィールドのエラーをチェックします。何もない場合、実行は続行されます。エラーが見つかった場合は、INPUT 結果 が返されます。
正しいインターセプター順序
メカニズムが確実に機能するようにするには、次のインターセプターがカスタム ファイルに存在する必要があります。正しい順序でスタックします:
パラメータインターセプター- 変換エラー インターセプター
- 検証インターセプター
- ワークフロー インターセプター
-
補足質問: アルファベットがゼロの場合
整数フィールドに入力された場合、それはそのフィールドのゲッターが
0 を返すデフォルトの動作 (int が使用されている場合)。
元の値の処理
変換インターセプターは、後続の使用のために元の値を保存すると主張します。リクエスト。ただし、value 属性が JSP タグで使用されている場合、この動作に一貫性がないというバグが存在しました。このバグは修正されたため、後続のリクエストでは元の値が正しく表示されるはずです。
ベスト プラクティス
インターセプター スタックを正しく設定します。- コードを確認してください。 、特に value 属性の使用。
- value 属性を使用する場合は、正しい構文を使用してください。例: value = "%{myIntField}"。
- テストの場合、最初に value 属性を削除して動作を確認し、次にデバッグしてバグを見つけます。
-
以上がStruts2 は変換エラーと検証エラーをどのように処理し、適切な入力を保証するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。