コピー2022.03.23こんにちは。たいら(@tairaengineer2)です。転職を繰り返し現在4社経験している、10年目エンジニアです。SpringBootでリクエストパラメータを取得できるようにする@RequestParamアノテーションについて@RequestParamアノテーションとは@RequestParamアノテーションを使ったサンプルプログラムと、丁寧に解説していきます。前提:実施している環境@RequestParamアノテーションとは@RequestParamアノテーションの属性:name属性、value属性@RequestParamアノテーションの属性:required属性@RequestParamアノテーションの属性:defaultValue属性@RequestParamアノテーションを解説するプログラムの概要Javaサンプルプログラム実行結果まとめ:@RequestParamアノテーションを使ってみよう!前提:実施している環境この記事では、以下の環境で行っています。IDEAを使っています。Bootプロジェクトを新規作成するやり方はこちらの記事をご参考ください。Bootプロジェクトを新規作成するやり方を解説しますこの記事ではC:\SpringBootSample配下に「SpringSample」という名前のプロジェクトを作っています。@RequestParamアノテーションとは@RequestParamアノテーションとは、リクエストパラメータを定義して取得できるようにするアノテーションです。org.springframework.web.bind.annotation.RequestParam;をインポートする必要があります。@RequestParamアノテーションの使い方サンプルは以下になります。処理}このサンプルでは、【http://localhost:8080/sample?test=Java】でGETリクエストを投げた場合、sampleメソッドの引数testには「Java」という値が設定されます。@RequestMappingアノテーションは、リクエストをマッピングするアノテーションです。詳しくはこちらの記事をご参考ください。【SpringBoot】URLとクラスやメソッドをマッピングする@RequestMappingアノテーションを解説します@RequestParamアノテーションで指定できる属性のname属性、value属性required属性defaultValue属性について、それぞれ詳しく解説します。※name属性、value属性は同じ機能を持っているので一緒に解説します。@RequestParamアノテーションの属性:name属性、value属性@RequestParamアノテーションの属性のname属性とvalue属性は、リクエストパラメータを指定する属性です。どちらも使っても同じ効果を得ることができます。片方だけを使っても良いですし、両方使っても問題ありません。処理}だと「test」というリクエストパラメータに紐づく値をsampleメソッドの引数testに設定します。name属性、value属性両方を使う場合に注意点があります。それは、設定する値は必ず同じものを使う必要がある、という点です。処理}だとコンパイルは通るものの実行した場合Javaorg.springframework.core.annotation.AnnotationConfigurationException1org.springframework.core.annotation.AnnotationConfigurationExceptionという例外が発生します。@RequestParamアノテーションの属性:required属性@RequestParamアノテーションの属性のrequired属性は、そのリクエストパラメータは必須かどうかを指定する属性です。trueならば必須、falseならば必須ではありません。デフォルトはtrueです。処理}required属性はfalseなのでこの場合http://localhost:8080/samplehttp://localhost:8080/sample?test=Javaどちらも正常に実行することができます。@RequestParamアノテーションの属性:defaultValue属性@RequestParamアノテーションの属性のdefaultValue属性は、リクエストパラメーターが指定されていない、または空の場合に設定されるデフォルト値を指定する属性です。defaultValue属性を指定している場合、required属性にtrueを設定していてもfalseとなります。処理}は【http://localhost:8080/sample】とリクエストパラメータを設定しなかった場合、sampleメソッドの引数testには「テスト」が設定されます。次の章で実際に使ってみます。全属性を指定name属性のみを指定という引数を持つメソッドを1つ作成します。指定したリクエストパラメータを取得できていること全属性を指定を指定したリクエストパラメータを設定しなかった場合defaultValue属性に指定した値が設定されていることname属性のみを指定したリクエストパラメータを設定しなかった場合エラーとなることを確認します。解説で使うJavaプログラムは、SpringSample\src\main\java\com\example\SpringSample配下にある【SpringSampleApplication.java】を使います。実行タブから実行ガターから実行の3種類あるので、いずれかで実行します。詳しい解説は以下の記事をご参考ください。IDEA】SpringBootプロジェクトを実行するやり方を解説します今回、確認するにあたりPostmanというツールを使います。Postmanの基本的な使い方については、こちらの記事をご参考ください。【Postman】基本的な使い方を解説しますまず、「指定したリクエストパラメータを取得できていること」を確認します。NAME:Mikeが返されているので、リクエストパラメータを取得できていることが確認できました。次に、「全属性を指定を指定したリクエストパラメータを設定しなかった場合defaultValue属性に指定した値が設定されていること」を確認します。nameが返されているのでリクエストパラメータを設定しなかった場合、defaultValue属性に指定した値が設定されていることが確認できました。最期に、「name属性のみを指定したリクエストパラメータを設定しなかった場合エラーとなること」を確認します。"/hello"}と、「id」リクエストパラメータが存在しないというとエラーが返ってきているので、required属性がtrueであった場合エラーとなることが確認できました。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。ΔホームプログラムJavaプロフィールこのブログを運営しているたいらと言います。プログラム言語を合計5言語経験している12年目エンジニアのブロガーです。このブログでは、どこよりも分かりやすくプログラムやツールのインストール方法などを解説し、エンジニアにの疑問解決に役立つ情報を発信します。お問い合わせなどがありましたら、下記のリンクからお願いします。お問い合わせこちらから記事の検索ができます。IDEAXAMPPお問い合わせホーム検索トップサイドバータイトルとURLをコピーしました。