Struts2 INPUT 結果: 仕組み?変換/検証エラーはどのように処理されますか?
主な質問
数値の代わりに無効な文字列が入力された場合、例外インターセプターを通過する必要があります。 Param インターセプター中、Integer.parseInt を使用した int 型への変換は失敗し、NumberFormatException がトリガーされます。この例外は値スタックにプッシュされるべきではないでしょうか?エラーがあるにもかかわらず結果が表示されるのはなぜですか?
補足質問
フォームにアルファベットを入力すると、ゼロが表示されます。これはなぜですか?
Concept
Struts2 は、変換エラーと検証エラーをブロック エラーではなく入力エラーとして扱います。例外を発生させる代わりに、INPUT 結果を返し、間違った入力をユーザーに通知します。
詳細ワークフロー
- パラメータ インターセプタ: パラメータの設定を試みます。 devMode で RuntimeException (NumberFormatException など) が発生した場合、アクション エラーにエラー メッセージが追加されます。それ以外の場合、例外は抑制されます。
- 変換エラー インターセプター: 変換エラーをチェックし、見つかった場合はフィールド エラーを追加します。また、後続のリクエストで表示するために元の値も保存されます。
- 検証インターセプター: 要求された検証を実行し、基準を満たさないフィールドのフィールド エラーを追加します。
- ワークフローインターセプター: フィールド エラーをチェックします。何も見つからない場合、チェーンは継続します。エラーが存在する場合は、INPUT 結果が返されます。
サイド質問の回答
元の回答では、文字列入力ではなくデフォルトの int 値を取得したため、変換エラーはゼロになりました。 。ただし、変換インターセプターは、後続のリクエストで表示するために元の文字列を保存する必要がありました。
しかし、文字列が abc ではなくゼロとして表示されるのはなぜですか?
この問題は、次の value 属性によって引き起こされます。入力コンポーネント。 value 属性で getText() または getText() を使用すると、変換の問題が発生します。 value 属性を削除するか、%{myIntField} を使用すると、問題は解決します。
結論
- インターセプター スタックが適切に構成されていることを確認してください。
- 入力の value 属性を確認してください
- テスト目的で value 属性を削除して、正しいことを確認します。動作。
以上がStruts 2 の INPUT 結果: 変換エラーと検証エラーはどのように処理されますか?また、例外ではなく INPUT 結果が返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、2025年の上位4つのJavaScriptフレームワーク(React、Angular、Vue、Svelte)を分析し、パフォーマンス、スケーラビリティ、将来の見通しを比較します。 強力なコミュニティと生態系のためにすべてが支配的なままですが、彼らの相対的なポップ

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

この記事では、リモートコードの実行を可能にする重大な欠陥であるSnakeyamlのCVE-2022-1471の脆弱性について説明します。 Snakeyaml 1.33以降のSpring Bootアプリケーションをアップグレードする方法は、このリスクを軽減する方法を詳述し、その依存関係のアップデートを強調しています

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

node.js 20は、V8エンジンの改善、特により速いガベージコレクションとI/Oを介してパフォーマンスを大幅に向上させます。 新機能には、より良いWebセンブリのサポートと洗練されたデバッグツール、開発者の生産性とアプリケーション速度の向上が含まれます。

大規模な分析データセットのオープンテーブル形式であるIcebergは、データの湖のパフォーマンスとスケーラビリティを向上させます。 内部メタデータ管理を通じて、寄木細工/ORCの制限に対処し、効率的なスキーマの進化、タイムトラベル、同時wを可能にします

この記事では、キュウリの手順間でデータを共有する方法、シナリオコンテキスト、グローバル変数、引数の合格、およびデータ構造を比較する方法を調べます。 簡潔なコンテキストの使用、記述など、保守性のためのベストプラクティスを強調しています

この記事では、Lambda式、Streams API、メソッド参照、およびオプションを使用して、機能プログラミングをJavaに統合することを調べます。 それは、簡潔さと不変性を通じてコードの読みやすさと保守性の改善などの利点を強調しています


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

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

メモ帳++7.3.1
使いやすく無料のコードエディター

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