@RequestParam用于http请求格式为application/x-www-form-urlencoded的情景,此时http请求传输的数据是键值对的格式,@RequestParam通过键名取出值赋给函数参数,键值对的传值形式适用于大部分情景(不适用于批量增删改),因此ajax默认的contentType就是application/x-www-form-urlencoded。
@RequestBody可以处理http请求多种类型的contentType,将不同类型的contentType转换为合适的对象。其中用的最多的是application/json,可以将HTTP传递的json数据直接转换为List<Object>或List<Map>对象,进行批量添加/更新/删除,弥补键值对格式的不足。注意:当使用@RequestBody处理json数据时,ajax的contentType要设置为application/json。