@RequestBody
@RequestBody は主に、フロントエンドからバックエンドに渡される JSON 文字列のデータ (リクエスト本文のデータ) を受信するために使用されます。
Get メソッドにはリクエスト本文がないため、@RequestBody を使用してデータを受信する場合、フロントエンドは Get メソッドを使用してデータを送信できず、代わりに
Post メソッドを使用してデータを送信します。バックエンドの同じ受信メソッドでは、@RequestBody と @RequestParam() を同時に使用できます。@RequestBody には最大 1 つしか指定できませんが、@RequestParam() には複数指定できます。
- 注: リクエストには RequestBody が 1 つだけありますが、リクエストには複数の RequestParams を含めることができます。
注:当同时使用 @RequestParam()和 @RequestBody时:
@RequestParam()指定的参数可以是普通元素、 数组、集合、对象等等
(即当:@RequestBody 与 @RequestParam() 可以同时使用时,原 SpringMVC 接收参数的机制不变,
只不过 RequestBody 接收的是请求体里面的数据;
而 RequestParam 接收的是 key-value 里面的参数,所以它会被切面进行处理从而可以用普通元素、
数组、集合、对象等接收)
即:如果参数时放在请求体中,传入后台的话,那么后台要用 @RequestBody 才能接收到;如果不是放
在请求体中的话,那么后台接收前台传过来的参数时,要用 @RequestParam 来接收,或则形参前什么
也不写也能接收。
注:如果参数前写了 @RequestParam(xxx),那么前端必须有对应的 xxx 名字才行
(不管其是否有值,当然可以通过设置该注解的 required 属性来调节是否必须传)
如果没有 xxx 名的话,那么请求会出错,报400。
注:如果参数前不写 @RequestParam(xxx) 的话,那么就前端可以有可以没有对应的 xxx 名字才行,
如果有 xxx 名的话,那么就会自动匹配;没有的话,请求也能正确发送。
@RequestParam
@RequestParam は、リクエスト パラメーター領域のデータを制御層関数の処理メソッドのパラメーターにマッピングするために使用されます。
-
主なパラメータの構文:
@RequestParam(value="パラメータ名"、required="true/false"、defaultValue="")
1. value: リクエストで渡されるパラメーターの名前。バックグラウンド インターフェイスの value 値を設定しない場合、デフォルトで変数名が使用されます。以下の図の最初のパラメータが value="pageNum" に設定されていない場合、フロントエンドによって渡されるパラメータ名は pageNum である必要があります。そうしないと、pageNum はバックグラウンド インターフェイスで対応するデータを受け取りません。
2. 必須: このパラメータを含めるかどうか。デフォルトは true で、リクエスト パスにこのパラメータが含まれている必要があることを示します。含まれていない場合は 404 エラーが報告されます。false に設定すると、リクエストにそのようなパラメーターがない場合、デフォルトで null になり、基本データ型の変数の場合は値が必要で、null ポインター例外がスローされます。null 値が許可される場合、インターフェイス内の変数はラッパー クラスを使用して宣言する必要があります。
3.defaultValue: デフォルトのパラメータ値。この値が設定されている場合、required=true は無効になり、自動的に false になります。このパラメータが渡されない場合は、デフォルト値が使用されます。
@PathVariable
リクエスト パス内のプレースホルダーの値を受け取ります。
@PathVariable アノテーションは、URL 内のプレースホルダー パラメーターをコントローラー処理メソッドの入力パラメーターにバインドできます。URL 内の {xxx} プレースホルダーには @PathVariable("xxx" を渡すことができます) ) は、アクション メソッドの入力パラメーターにバインドされます。
以下に示すように:
@有効
@Valid アノテーションによりデータ検証を実現できます。最初にエンティティを定義し、エンティティの属性に検証ルールを追加し、
API がデータを受信するときに @valid キーワードを追加できます。このとき、定義されたエンティティは検証機能を有効にします。
@Valid アノテーションが検証に使用される場合、それが属するパッケージは javax.validation.Valid になります。
- まず、次に示すように、エンティティ クラスの対応するフィールドに検証条件として機能するアノテーションを追加する必要があります。
- 次に、以下に示すように、コントローラー層のメソッド検証のパラメーターに @Valid アノテーションを追加し、対応するフィールドに追加されたメッセージの内容を検証して取得するために Dto エンティティ クラス オブジェクトを渡す必要があります。
- 注: 例外タイプを誤用しないでください。たとえば、@size は int では使用できません。
-----------@差分比較----------
@RequestBody アノテーションと @RequestParam アノテーションの違い
Getリクエストでは@RequestBodyは使用できません。Postリクエストでは@RequestBodyと@RequestParamが利用できますが、@RequestBodyを利用する場合はパラメータ変換の設定を統一する必要があります。
@RequestParam アノテーションによって受け取られるパラメータは、requestHeader、つまりリクエスト ヘッダーから取得されます。どちらもリクエスト パス URL 内の動的パラメータを取得するために使用されます。つまり、URL の形式は xxx?username=123&password=456 です。
@RequestBody アノテーションによって受け取られるパラメータは、requestBody、つまりリクエストの本文から取得されます。
@RequestParam アノテーションと @PathVariable アノテーションの違い
@RequestParam アノテーションと @PathVariable アノテーションは、リクエストからリクエストを受け取るために使用されます。どちらもパラメータを受け取ることができます。主な違いは、@RequestParam はリクエストから値を取得するのに対し、@PathVariable は URL テンプレートから値を入力することです。
@RequestParam アノテーションは、静的 URL によって渡されるパラメーターを取得するために使用されます。
@PathVariable は、リクエスト パス内の変数をパラメーターとして取得するために使用され、@RequestMapping("item/{itemId}") と組み合わせて使用する必要があります。
----------- @認証情報フォーム -----------
検証情報説明書
限界 | 説明する |
---|---|
@ヌル | 制限は null のみ可能です |
@NotNull | 制限を null にすることはできません |
@AssertFalse | 制限は false である必要があります |
@AssertTrue | 制限は true でなければなりません |
@DecimalMax(値) | 制限は指定された値以下の数値である必要があります |
@DecimalMin(値) | 制限は指定された値以上の数値である必要があります |
@Digits(整数,小数) | 制限は 10 進数である必要があり、整数部の桁数は整数を超えることはできず、小数部の桁数は小数部を超えることはできません。 |
@未来 | 制約は将来の日付である必要があります |
@Max(値) | 制限は指定された値以下の数値である必要があります |
@Min(値) | 制限は指定された値以上の数値である必要があります |
@過去 | 制限は過去の日付である必要があります |
@パターン(値) | 制限は指定された正規表現と一致する必要があります |
@サイズ(最大、最小) | 制限文字数は最小値と最大値の間である必要があります |
@過去 | アノテーションの要素値(日付型)が現在時刻よりも前であることを確認する |
@空ではない | アノテーションの要素値が null でも空でもないことを確認します (文字列の長さが 0 ではなく、コレクションのサイズが 0 ではありません)。 |
@NotBlank | 注釈の要素値が空ではないことを確認します (null ではなく、最初のスペースを削除した後の長さは 0)。@NotEmpty とは異なり、@NotBlank は文字列にのみ適用され、比較時に文字列のスペースは削除されます。 |
@Eメール | 注釈の要素値が Email であることを確認します。また、正規表現とフラグを使用してカスタムの電子メール形式を指定することもできます。 |
注:
いいね、コメント、転載は大歓迎です 記事ページのわかりやすい場所に原文へのリンクをお願いします ご存知の
方、大勢の中、私の記事を読んでいただきありがとうございます
個性のない署名はどこにありますか!
詳細については、私に
注目して更新し続けてください
© 2020 10 - Guyu.com | 【著作権全著作権所有】 |