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>
  • 相关阅读:
    零基础学习Java Web开发(一)
    域名的定义
    MyEclipse使用(一)
    VB与C#语言部分不用的地方Part1
    使用XmlWriter创建XML文件
    Spring源码
    Websocket原理
    阿里云
    CSS中position属性( absolute | relative | static | fixed )详解
    C#UDP广域网,局域网通信-原理分析
  • 原文地址:https://www.cnblogs.com/yangchongxing/p/10186429.html
Copyright © 2011-2022 走看看