Spring のリクエストとレスポンス - レスポンス

前回の記事でリクエストについてお話しましたが、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这个接口专门来做数据类型转换的,很多都是通过它,没事可以看看

おすすめ

転載: blog.csdn.net/weixin_45696320/article/details/130290476