Spring MVCでパラメータの値が正常に取得できない問題の解決方法(コード付き)
この記事の内容はSpring MVCでパラメータ値が正常に取得できない問題の解決方法(コード付き)です一定の参考値が記載されておりますので困っている方は参考にしていただければ幸いですあなた。 。
最近、開発中に非常に奇妙な問題に遭遇しました。tomcat8 で Spring MVC フレームワークを使用すると、コントローラーのメソッド パラメーターが対応する値を正常に取得できませんでした。Tomcat のバージョンを次のように変更することで解決しました。 7.0。
次のソリューション プロセスを記録します。最初に上の図を示します。
を使用します。
は、パスワード パラメータです。RequestParam アノテーションを追加した後も、デバッグではパスワードの値を取得できません。required の値を true に変更すると、エラーが直接報告されます。エラーは、パスワード パラメータが欠落していることを意味しますが、パラメータが明らかに渡されているのに、パラメータが見つからないと言われるのはなぜですか? 渡したパラメータが認識されなかった可能性がありますか?この時、パラメータの受け渡し方法に問題がある可能性が考えられます。パラメーターの受け渡し方法を変更し、パスワードの値を URL の末尾に追加し、GET リクエストと同じようにパラメーターを渡します。案の定、このためパラメータの値を受け取ることができます。ただし、このパラメータの受け渡し方法を使用すると、RequestParam アノテーションを付加せずにパラメータの値を受け取ることができます。このメソッドは受け取ったパラメータの値を受け取ることはできますが、POSTのパラメータを渡すメソッドに耐えられないので、次のメソッドを探します#この方法でコードを変更し、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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









2023年、AI技術が注目を集め、プログラミング分野を中心にさまざまな業界に大きな影響を与えています。 AI テクノロジーの重要性に対する人々の認識はますます高まっており、Spring コミュニティも例外ではありません。 GenAI (汎用人工知能) テクノロジーの継続的な進歩に伴い、AI 機能を備えたアプリケーションの作成を簡素化することが重要かつ緊急になっています。このような背景から、AI 機能アプリケーションの開発プロセスを簡素化し、シンプルかつ直観的にし、不必要な複雑さを回避することを目的とした「SpringAI」が登場しました。 「SpringAI」により、開発者はAI機能を搭載したアプリケーションをより簡単に構築でき、使いやすく、操作しやすくなります。

Spring+AI は業界リーダーとして、強力で柔軟な API と高度な機能を通じてさまざまな業界に最先端のソリューションを提供します。このトピックでは、さまざまな分野での Spring+AI の応用例を詳しく掘り下げ、Spring+AI がどのように特定のニーズを満たし、目標を達成し、これらの教訓をより広範囲のアプリケーションに拡張するかを示します。このトピックが Spring+AI の無限の可能性をより深く理解し、活用するきっかけになれば幸いです。 Spring フレームワークはソフトウェア開発の分野で 20 年以上の歴史があり、Spring Boot 1.0 バージョンがリリースされてから 10 年が経過しました。今、その春に異論を唱える人はいない

Spring プログラムによるトランザクションを実装する方法: 1. TransactionTemplate を使用する; 2. TransactionCallback および TransactionCallbackWithoutResult を使用する; 3. Transactional アノテーションを使用する; 4. TransactionTemplate を @Transactional と組み合わせて使用する; 5. トランザクション マネージャーをカスタマイズする。

Java によるスケジュールされたタスクの実装 Jdk に付属のライブラリでは、スケジュールされたタスクを実装する 2 つの方法があります。1 つは Timer で、もう 1 つは ScheduledThreadPoolExecutor です。 Timer+TimerTask が Timer を作成すると、TimerTask タスクのスケジュールに使用できるスレッドが作成されます。Timer には 4 つの構築メソッドがあり、Timer スレッドの名前と、それをデーモン スレッドとして設定するかどうかを指定できます。デフォルト名は Timer-number で、デフォルトはデーモン スレッドではありません。主なメソッドは 3 つあります。 cancel(): タスクのスケジュールを終了し、現在スケジュールされているすべてのタスクをキャンセルします。実行中のタスクは影響を受けません。 purge(): タスク キューからタスクを削除します。

SpringBoot と SpringCloud は両方とも、開発者がマイクロサービス アプリケーションをより迅速に構築およびデプロイできるようにする Spring Framework の拡張機能ですが、それぞれ異なる目的と機能を持っています。 SpringBoot は、Java アプリケーションを迅速に構築するためのフレームワークであり、開発者は Spring ベースのアプリケーションをより迅速に作成してデプロイできるようになります。スタンドアロンの実行可能な Spring アプリケーションを構築するための、シンプルでわかりやすい方法を提供します。

テクノロジーの更新と反復により、Java5.0 はアノテーションをサポートし始めました。 Java の主要なフレームワークである Spring は、バージョン 2.5 に更新されて以来、徐々に XML 構成を放棄し始めており、Spring フレームワークを制御するために使用されるアノテーションが増えています。

Spring でトランザクション分離レベルを設定する方法: 1. @Transactional アノテーションを使用します; 2. Spring 構成ファイルに設定します; 3. PlatformTransactionManager を使用します; 4. Java 構成クラスに設定します。詳細な導入方法: 1. @Transactional アノテーションを使用し、トランザクション管理が必要なクラスまたはメソッドに @Transactional アノテーションを追加し、属性に分離レベルを設定します。 2. Spring の設定ファイルなどで

Java 開発者として、Spring フレームワークを学習して使用することは必須のスキルです。クラウド コンピューティングとマイクロサービスの人気に伴い、Spring Cloud の学習と使用も習得しなければならないスキルになりました。 SpringCloud は、分散システムを迅速に構築するための SpringBoot に基づく開発ツールセットです。サービスの登録と検出、構成センター、負荷分散、サーキット ブレーカーなどの一連のコンポーネントを開発者に提供し、開発者がマイクロ サービスを構築できるようにします。
