zoukankan      html  css  js  c++  java
  • SpringMVC之ajax与表单 Post 数据提交差异小结

      最近在写一个富文本框的后台数据服务的时候遇到一些关于 ajax 提交与 表单提交的比较特殊的案例,这里拿来跟大家分享,希望能让大家有所启发。

    1. 首先是常见表单提交在SpringMVC的控制器中的代码情况:

    @Controller
    public class MaterialController {

        @Autowired
        MaterialService materialService;

        @RequestMapping(value="/addArticle",method=RequestMethod.POST)
        public String saveArticle(AddArticleVO addArticleVO){
            materialService.saveArticle(addArticleVO);
            return "redirect:/articleList.html";
        }
    }

      做过SpringMVC的应该都比较熟悉这样的代码,我这里想重点突出的是,在前端以表单提交的方式将数据过来后是没办法控制其下一个页面的跳转的,后台在不使用 jsp或velocity 这类引擎的时候,可采取上面的方式为该服务重定向一个新的html页面。另外需要注意的是,切忌给该方法加上@ResponseBody的注释,否则前端只会打印出重定向这条字条串指令。

    2. 前端 ajax 提交数据到后台:

    @Controller
    public class MaterialController {

        @Autowired
        MaterialService materialService;

        @RequestMapping(value="/addImg",method=RequestMethod.POST)
        @ResponseBody
        public void saveImg(@RequestBody AddImgVO addImgVO){
            materialService.saveImg(addImgVO);
        }
    }

      首先 @RequestBody 注解是一定要加的,否则这个服务没办法获取到前台提交过来的任何数据。其次是@ResponseBody 注解,因为这里在图片信息保存完毕之后是不主动再向前端提供任何数据的,如果不加这个注解会导致前端的这个 ajax 请求始终无法成功执行完,如果该请求带有数据提交完毕页面跳转之类的响应事件,那么将永远没办法触发,页面会一直卡在数据提交那个表单页面,就好像一直在等待后台给它一个反馈一样。

  • 相关阅读:
    Jenkins构建项目
    jenkins的理解及安装
    GitLab初识以及代码迁移
    深入浅出Git(偏向理论)
    理解下所谓的ssh隧道
    洛谷-P1908 逆序对
    洛谷-P1010 幂次方
    洛谷-P1226 【模板】快速幂||取余运算
    洛谷-P1074 靶形数独
    洛谷-P1433 吃奶酪
  • 原文地址:https://www.cnblogs.com/binye-typing/p/6122418.html
Copyright © 2011-2022 走看看