zoukankan      html  css  js  c++  java
  • 【Java Web开发学习】Spring MVC 使用HTTP信息转换器

    【Java Web开发学习】Spring MVC 使用HTTP信息转换器

    转载:https://www.cnblogs.com/yangchongxing/p/10186429.html

    @ResponseBody和@RequestBody是启用消息转换的一种简洁和强大方式

    消息转换(message conversion)提供了一种更为直接的方式,它能够将控制器产生的数据转换为服务于客户端的表述形式。
    择MappingJacksonHttpMessageConverter或MappingJackson2HttpMessageConverter
    produces仅处理客户端Accept头部信息表明它接口application/json类型结果的请求,并且Jackson JSON在类路径下。消息转换器会将控制器返回的结果转换为JSON文档。
    consumes仅处理客户端ContentType头部信息是application/json的请求,并且Jackson JSON在类路径下。消息转换器会将请求的JSON文档转换为控制器对象。
    @RestController Spring将会为处理器的所有方法消息转换功能。
    @RequestBody查找一个消息转换器,将来自客户端的资源表述转换为对象。

    @RestController
    public class IndexController {
        @RequestMapping(value="/person", consumes="application/json", produces="application/json")
        @ResponseBody
        public Map<String, String> person(@RequestBody Person person) throws IOException {
            System.out.println(person);
            Map<String, String> data = new HashMap<String, String>();
            data.put("status", "ok");
            return data;
        }
    }

    bean

    public class Person {
        private String name;
        private String sex;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getSex() {
            return sex;
        }
        public void setSex(String sex) {
            this.sex = sex;
        }
    }

    测试html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <script src="node_modules/vue/dist/vue.js"></script>
        <script src="node_modules/vue-resource/dist/vue-resource.js"></script>
        <title>Document</title>
    </head>
    <body>
        <div id="app">
            <button type="button" value="click" @click="get()">click</button>
        </div>
        <script>
        Vue.http.options.emulateJSON = true;
        new Vue({
                    
                    el:"#app",
                    methods:{
                        get:function(){
                            var person = {name:'tom',sex:'boy'};
                            this.$http.post(
                                'http://localhost:8080/mvc/person',
                                person,
                                { emulateJSON:false})
                                .then(function(res){
                                    alert(res.data);
                                
                                },function(res){
                                    console.log(res);
                                });
                        }
                    }
                    
                })
        </script>
    </body>
    </html>
  • 相关阅读:
    Leetcode 1489找到最小生成树李关键边和伪关键边
    Leetcode 113 路径总和 II
    hdu 1223 还是畅通工程
    hdu 1087 Super Jumping! Jumping! Jumping!
    hdu 1008 Elevator
    hdu 1037 Keep on Truckin'
    湖工oj 1241 畅通工程
    湖工oj 1162 大武汉局域网
    hdu 2057 A + B Again
    poj 2236 Wireless Network
  • 原文地址:https://www.cnblogs.com/yangchongxing/p/10186429.html
Copyright © 2011-2022 走看看