@RequestBody、@ResponseBodyノートを理解します

@RequestBody、@ResponseBodyノートを理解します

どのように彼の過去は、フロントの採用と個別の開発モードの後端部の後に練習をし、あまりにも注意を払っていない、フロントとリアエンドはノートはJSON形式です取得するには、この時間@RequestBody、@ResponseBody 2冊のノートには、次の詳細非常に使いやすいです使用方法:

@RequestBody

1.役割:
  • 注釈リクエスト要求HttpMessageConverterデフォルト設定を解析を読み取るためのシステムを使用して、データの本体部分は、その後返すオブジェクトに対応するデータに結合します。
  • 次いでHttpMessageConverter結合するコントローラパラメータ方式でオブジェクトデータに戻ります。
2.機会を使用します。
決定された要求ヘッダーのContent-Typeの値に応じて、POSTの送信時刻を取得します。
  • application/x-www-form-urlencodedオプション(すなわち、必ずしも、この場合@RequestParamのデータので、@ModelAttribute処理は、もちろん、@RequestBodyを処理することができるかもしれません)。
  • multipart/form-data(処理されていない、すなわち、このフォーマットを使用@RequestBodyするデータを処理することはできません)。
  • 他の形式は:なければならない(アプリケーション/ JSON、アプリケーション/ようなこれらのフォーマットとしてXMLデータを含む他の形式は@RequestBodyを処理しなければなりません。)。
場合PUT提出、決定するために、要求ヘッダーのContent-Typeの値に応じ。
  • application/x-www-form-urlencoded必要があります
  • multipart/form-data取り扱いできません
  • 他の形式:必要があります
たとえば、3:

これは、データがJSON形式であれば、我々は、渡された引数がオブジェクトでありたい、で、それを使用する必要があります@RequestBody

@RequestMapping(value = "/test", Method = RequestMethod.POST, produces = "application/json;charset="UTF-8")
@ResponseBody
public JSONObject class Test(@RequestBody Test test) {
    String name = test.getName();
    // 将 name 回显
    Map<String, Object> map = new HashMap<>();
    map.put("name", name);
    JSONObject obj = JSONObject.fromObject(map);
    return obj;
}

@ResponseBody

1.役割:

コントローラオブジェクトの注釈は、指定されたデータフォーマット後に適切な身体HttpMessageConverter変換領域によって、メソッドによって返され、応答オブジェクトを書き込みます。

2.機会を使用します。

HTMLページは、ラベルではなく、(などJSON、XML、など)いくつかの他のデータ形式のデータが返されました。

たとえば、3:
@RequestMapping(value = "/test", Method = RequestMethod.POST, produces = "application/json;charset="UTF-8")
@ResponseBody
public JSONObject class Test() {
    JSONObject obj = new JSONObject;
    obj.put("test", 1);
    // 将 obj 回显
    return obj;
}

参考:

https://blog.csdn.net/walkerJong/article/details/7520896

仕上がり。

おすすめ

転載: www.cnblogs.com/weixuqin/p/11373402.html