前回の記事でリクエストについてお話しましたが、SpringMVCはリクエストとデータを受け取った後、何らかの処理を行います、もちろんこの処理をServiceに転送し、Service層がDao層を呼び出して完了することも可能です。処理後、ユーザーに結果を通知するということは、ユーザーに応答を与えることを意味します。
応答については、主に次の 2 つの部分で構成されます。
- 応答ページ
- 応答データ(テキストデータ、jsonデータ)
応答ページ
SpringMVCのレスポンスページは非常にシンプルで、「ページ名」を文字列形式(String)で返します。
応答データ
応答テキストデータ
@ResponseBody (付加しない場合はレスポンスページとして扱われます)
//响应文本数据
//返回值为String类型,设置返回值为任意字符串信息,即可实现返回指定字符串信息,需要依赖@ResponseBody注解
@RequestMapping("/toText")
@ResponseBody
public String toText(){
System.out.println("返回纯文本数据");
return "response text";
}
レスポンスのjsonデータ
//响应POJO对象
//返回值为实体类对象,设置返回值为实体类类型,即可实现返回对应对象的json数据,需要依赖@ResponseBody注解和@EnableWebMvc注解
@RequestMapping("/toJsonPOJO")
@ResponseBody
public User toJsonPOJO(){
System.out.println("返回json对象数据");
User user = new User();
user.setName("itcast");
user.setAge(15);
return user;
}
//响应POJO集合对象
//返回值为集合对象,设置返回值为集合类型,即可实现返回对应集合的json数组数据,需要依赖@ResponseBody注解和@EnableWebMvc注解
@RequestMapping("/toJsonList")
@ResponseBody
public List<User> toJsonList(){
System.out.println("返回json集合数据");
User user1 = new User();
user1.setName("黑予督");
user1.setAge(15);
User user2 = new User();
user2.setName("张鑫乐");
user2.setAge(12);
List<User> userList = new ArrayList<User>();
userList.add(user1);
userList.add(user2);
return userList;
}
実際、返されたテキストと非常によく似ていることがわかりましたか?ただし、明確にするために、テキストの戻り文字列 josn return class は pojo です。
名前 | @ResponseBody |
---|---|
タイプ | メソッド\クラスのアノテーション |
位置 | SpringMVC コントローラー メソッド定義の上およびコントロール クラス上 |
効果 | 現在のコントローラーの戻り値をレスポンスボディとして クラスに記述します このクラスのすべてのメソッドがこのアノテーション関数を持ちます |
関連する属性 | pattern: 日付と時刻の形式文字列を指定します。 |
例証します:
- このアノテーションはクラスまたはメソッドに記述できます。
- クラスに書かれているということは、クラス下のすべてのメソッドに @ReponseBody 関数があることを意味します
- メソッドに @ReponseBody アノテーションが付けられている場合
- メソッドの戻り値は文字列で、テキスト コンテンツとしてフロント エンドに直接応答されます。
- メソッドの戻り値はオブジェクトであり、オブジェクトはフロントエンドへの JSON 応答に変換されます。
- オブジェクトから Json データへ (POJO -> json)
- コレクションからJsonデータへ (コレクション -> json)
Converter这个接口专门来做数据类型转换的,很多都是通过它,没事可以看看