zoukankan      html  css  js  c++  java
  • Vue入门(四)——Axios向SpringMVC传数据

    在实际业务需求中,经常会出现前台传表单或者对象到后台,后台Handler接受并转换成对应的POJO以供业务代码使用

    此时在SpringMVC框架中就要用到@RequestBody注解,该注解用于将请求中的JSON对象转换成对应的POJO类的属性;

    后台框架中使用该注解,需要在spring-mvc的配置文件中加入如下配置依赖(jackson-core,jackson-databind,jackson-annotations):

    <mvc:annotation-driven>
            <!--设置全局时间格式化 -->
            <mvc:message-converters>
                <bean
                    class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                    <property name="objectMapper">
                        <bean class="com.fasterxml.jackson.databind.ObjectMapper">
                            <property name="dateFormat">
                                <bean class="java.text.SimpleDateFormat">
                                    <constructor-arg type="java.lang.String" value="yyyy-MM-dd HH:mm:ss" />
                                </bean>
                            </property>
                        </bean>
                    </property>
                </bean>
            </mvc:message-converters>
        </mvc:annotation-driven>

    Controller:

    @RequestMapping(value = "/add/blog", method = RequestMethod.POST, produces = {"application/json;charset=utf-8"})
        public void addBlog(@RequestBody Blog blog, HttpServletRequest request, HttpServletResponse response){
            blogServicesImpl.save(blog);
            Result result = new Result();
            result.setSuccess(true);
            this.print(result, response);
        }

    Vue页面:

    this.$ajax({
              method: 'POST',
              url: '/api/mobile/add/blog',
              data: JSON.stringify(data),
              headers: {
                'Content-Type': 'application/json;charset=UTF-8'
              }
            }).then(response => {
              debugger;
              var result = response.data;
              if (result.success) {
                var list = result.list;
                for(var i=0; i<list.length; i++){
                  var blog = {};
    
                  blog.title = list[i].blogTitle;
                  blog.bref = list[i].blogSummary;
                  that.collect.push(blog);
                }
    
              } else {
                this.logs = []
                this.$message.error(result.message)
              }
            }).catch(error => {
              this.$message.error(error.message)
            })

    注意,这里的前台请求和Controller中获取Request的请求方式要一致,都为

    application/json;charset=UTF-8,

    否则请求415错误
  • 相关阅读:
    秒杀系统核心高性能解决方案(待续)
    LeetCode字符串专题
    LeetCode哈希表专题
    LeetCode排序专题【算法】
    Login项目学习笔记【Android】
    LeetCode树专题(遍历,BST,Trie)(未完成)
    Android studio导入别人项目的艰难记录
    LeetCode树专题(递归)(未完成)
    LeetCode双指针专题【算法】(未完成)
    LeetCode数组与矩阵专题(未完成)
  • 原文地址:https://www.cnblogs.com/zyxiaohuihui/p/9088126.html
Copyright © 2011-2022 走看看