springmvc的参数和异步返回的问题笔记

18 篇文章 0 订阅
8 篇文章 0 订阅

springmvc的中参数的注入和异步请求的问题

01、异步编程ajax

使用异步编程其实就是:Ajax 是通过XMLHttpRequest封装而来。不论是:jquery还是axios都是它的衍生品。使用异步编程的好处:

  • 提供网站的性能
  • 实现局部刷新
  • 让交互变得更加的友好

02、以axios为例子来说明异步的注意事项

02-01、异步请求 + @ReponseBody

正常的异步请求交互的逻辑。

使用axios发起异步请求的步骤和流程:

  • 导入axios.min.js文件

  • 开始进行异步请求

    axios.post(url,{params}).then.catch
    axios.get(url,params:{}).then.catch
    
  • 后端sprignmvc方法必须要增加+@ResponseBody

     /*
         * @Author yykk
         * @Description //TODO 用户保存
         * @Date 17:22 2021/10/7
         * @Param 
         * @return 
         **/
        @PostMapping("/user/save")
        @ResponseBody
        public User saveUser(User user) {
            System.out.println("保存的用户是:");
            System.out.println(user);
            return user;
        }
    
    

02-03、关于@ResponseBody注解

@ResponseBody的具体作用:

  • 就是告诉springmvc的路由方法,它是一个异步请求请求的方法。也就说最后的返回不会用视图解析器进行解析,也就不去templates去找页面对应的模板
  • 一句话:你返回,浏览器得到什么
    • 如果你基础数据类型,你返回什么就是什么?
    • 如果返回java对象(bean,List,Map)等,内部会把对象转换json在进行返回

如下图:

请添加图片描述

02-02、异步请求 +访问非@ReponseBody

你们想法是非常的简单和单纯:定义一个路由方法 + axios。

认识:我们指定如果没有加@ResponseBody的路由方法,使用freemaker或者thymeleaf访问的页面。

问题:

首先要明确:axios处理服务器请求:它一定会有响应结果的

  • axios异步请求@ResponseBody的异步方法。它的返回就是:你返回什么,就得到什么?

  • axios发起异步请求去请求一个没有加@ResponseBody的方法的时候,服务器它返回是什么?

    答案是:网页的源代码

如果下图分析:
请添加图片描述

02、freemaker、thymeleaf 和 vue 它们的相同的相同的差异点是什么?

  • vue是一种纯客户端的模板引擎技术,你只需要返回数据,模板的替换和渲染交由vue来实现
  • freemarker它们适于服务端模板引擎技术,模板的替换和渲染交由服务器段的freemaker来做、
  • 从性能角度来思考的话:vue确实要优于freemaker和thymeleaf.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值