検索
ホームページJava&#&チュートリアルSpring MVCでパラメータの値が正常に取得できない問題の解決方法(コード付き)

この記事の内容はSpring MVCでパラメータ値が正常に取得できない問題の解決方法(コード付き)です一定の参考値が記載されておりますので困っている方は参考にしていただければ幸いですあなた。 。

最近、開発中に非常に奇妙な問題に遭遇しました。tomcat8 で Spring MVC フレームワークを使用すると、コントローラーのメソッド パラメーターが対応する値を正常に取得できませんでした。Tomcat のバージョンを次のように変更することで解決しました。 7.0。

次のソリューション プロセスを記録します。最初に上の図を示します。

##プロジェクトは ssm を採用しています。アーキテクチャ、パラメータのパスワードの値はここでは取得できません。インターネットで関連情報を検索し、次の解決策を見つけましたが、どれも効果がありませんでした:

1. @RequestParam アノテーション

を使用します。

は、パスワード パラメータです。RequestParam アノテーションを追加した後も、デバッグではパスワードの値を取得できません。required の値を true に変更すると、エラーが直接報告されます。エラーは、パスワード パラメータが欠落していることを意味しますが、パラメータが明らかに渡されているのに、パラメータが見つからないと言われるのはなぜですか? 渡したパラメータが認識されなかった可能性がありますか?この時、パラメータの受け渡し方法に問題がある可能性が考えられます。パラメーターの受け渡し方法を変更し、パスワードの値を URL の末尾に追加し、GET リクエストと同じようにパラメーターを渡します。案の定、このためパラメータの値を受け取ることができます。ただし、このパラメータの受け渡し方法を使用すると、RequestParam アノテーションを付加せずにパラメータの値を受け取ることができます。このメソッドは受け取ったパラメータの値を受け取ることはできますが、POSTのパラメータを渡すメソッドに耐えられないので、次のメソッドを探します

2。 @ RequestBody アノテーション

RequestBody は文字通りリクエストの本文を意味します。リクエストを作成したとき、パラメータを本文に入れて渡しました。アノテーションは、「予想どおり、Tomcat を再起動するのを待ちきれず、Postman で呼び出しました。今回は、ブレークポイントには入らず、例外が直接報告されました:

org.springframework」。 http.converter.HttpMessageNotReadableException: 必要なリクエスト本文がありません: public boolean com.scdq.manager.controller.SystemController.login(java.lang.String)

例外の一般的な意味は、必要なリクエスト本文が存在しないことです。関連情報を照会すると、RequestBody をこのようにすることはできないことがわかりました。使用するには、クラスを作成し、クラス内で関連するパラメーターを定義し、このクラスを RequestBody アノテーションのパラメーターのタイプとして使用する必要があります

#この方法でコードを変更し、Tomcat を再起動し、Postman を使用して呼び出してから、再度例外を報告します:

org.springframework.web.HttpMediaTypeNotSupportedException:コンテンツ タイプ 'application/x-www-form-urlencoded' はサポートされていません

例外の一般的な意味は、コンテンツ タイプが application/x-www-form-urlencoded であるということです。通常、データは、 formのデフォルトはこの型になっているのですが、RequestBodyアノテーションのせいかもしれないので変更してみました パラメータの受け渡し方法:JSON形式でデータを渡します

#

このパラメータの受け渡し方法を利用すると、確かにパラメータの値を受け取ることができますが、パラメータの受け取り方法とパラメータの受け渡し方法が複雑になってしまいます。私はこのプロジェクトを会社から家にコピーして書き続けました。会社にいるときはすべて問題なくデバッグできましたが、家に帰ると動作しませんでした。困惑しました。同じコードを変更したわけではありませんが、それで、なぜ家に帰ったときに何か問題が起こったのでしょうか?コードは同じでも実行結果が異なるということは、実行環境が変わっただけということになります。では、具体的にどこが環境の違いなのでしょうか?このような問題が発生した場合、まずデータベースの構造を検討しますが、自宅のコンピュータのデータベースのバージョンは会社のコンピュータと同じであり、データは会社から直接コピーされているため、データベースは直接除外されます。コントローラーで受信されることは言うまでもなく、パラメーターとデータベースへのアクセス手順がなければ、データベースに関連する可能性はさらに低くなり、データベースの原因を直接除外することができます。プロジェクトはmavenでビルドされているので、関連するjarパッケージはmavenによって自動的にダウンロードされるので、mavenが自動的にダウンロードするjarパッケージに問題があるのではないかと思い、ローカルウェアハウスにあるjarパッケージをすべて削除して、mavenを再起動させます. ダウンロードして何度か繰り返しましたが、問題は解決せず、仕方なく一時的にmavenの原因を排除しました。結局、他に原因が思いつかなかったので、会社のTomcatのバージョンが7.0、自宅のTomcatのバージョンが8.0で、Tomcatのバージョンが一致していないのですが、Tomcatの原因を疑い始めました。 Tomcat のバージョンに違いないと無意識に思っているのですが、結局のところ、8.0 は 7.0 の後の機能のアップグレードに違いないと無意識に思っています。そう思いながらも、死馬、生医者の精神で試験に臨み、tomcat公式サイトから7.0版の圧縮パッケージをダウンロードし、対応する環境を構築してpostmanで呼び出しました。 . 結果は予想外でした。パラメータ値は取得できましたか? ! ! !本当にTomcatのバージョンが原因なのでしょうか?これでは退屈すぎる気がします。 。 。 。やみくもに上位バージョンを追求するのは良いことではないようです [関連する推奨事項: Java チュートリアル ]

以上がSpring MVCでパラメータの値が正常に取得できない問題の解決方法(コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfaultで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?Mar 17, 2025 pm 05:46 PM

この記事では、Javaプロジェクト管理、自動化の構築、依存関係の解像度にMavenとGradleを使用して、アプローチと最適化戦略を比較して説明します。

適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?適切なバージョン化と依存関係管理を備えたカスタムJavaライブラリ(JARファイル)を作成および使用するにはどうすればよいですか?Mar 17, 2025 pm 05:45 PM

この記事では、MavenやGradleなどのツールを使用して、適切なバージョン化と依存関係管理を使用して、カスタムJavaライブラリ(JARファイル)の作成と使用について説明します。

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?Mar 17, 2025 pm 05:44 PM

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

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?Mar 17, 2025 pm 05:43 PM

この記事では、キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPAを使用することについて説明します。潜在的な落とし穴を強調しながら、パフォーマンスを最適化するためのセットアップ、エンティティマッピング、およびベストプラクティスをカバーしています。[159文字]

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?Mar 17, 2025 pm 05:35 PM

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

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

Safe Exam Browser

Safe Exam Browser

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。