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 请求始终无法成功执行完,如果该请求带有数据提交完毕页面跳转之类的响应事件,那么将永远没办法触发,页面会一直卡在数据提交那个表单页面,就好像一直在等待后台给它一个反馈一样。

  • 相关阅读:
    Qt编译出错:“Cannot find file...... .pro."
    谈论如何有效地保护你的数据
    购书网
    VC非模态对话框创建和销毁
    在GUI程序中使用控制台的两种方法
    fatal error C1010: unexpected end of file while looking for precompiled header directive
    burp抓取手机包
    为firefox添加flash插件
    msfvenom生成linux后门
    kali下操作 Apache2
  • 原文地址:https://www.cnblogs.com/binye-typing/p/6122418.html
Copyright © 2011-2022 走看看