-
这一般前端发送过来,后端要处理的请求有两种:
-
普遍请求:一般controller是后端处理完成后返回页面,浏览器使用页面替换整个窗口中的内容。 Ajax请求:后端处理完成后通常返回JSON数据,jQuery代码使用JSON数据对局部数据进行更新。
那么现在大多交互的也都是json,以后前后端的交互可能是JSON,我们在springmvc环境下用ajax有两个注解。@RequestBody
@ResponseBody 他俩的流程:
@RequestBody 和@ResponseBody正常工作需要在环境中添加依赖:必须有jackson的支持。
把jQuery引入进来
这样就可以写测试的代码了。
@ResponseBody注解 作用 让
controller方法的返回值本身就是当前请求的响应数据。不再参考视图处理器 中配置的前后缀信息。
@Controller
public class AjaxHandler { @ResponseBody
@RequestMapping("/get/emp/by/ajax") public Employee
getEmployeeByAjax() { return new Employee(555, “empName555”,
555.55);}}注意 开启 SpringMVC 的注解驱动 mvc:annotation-driven/ 必须有 jackson 依赖 jackson-core jackson-databind 扩展名需要和实际返回的数据格式一致 响应体返回 JSON
请求扩展名.json web.xml 中 DispatcherServlet 必须映射.json 扩展名**@RequestBody 注解 在写js处 // 准备要发送的数组
var array = [5,8,12]; // 将 JSON 数组转换成 JSON 字符串 // "[5,8,12]"
var arrayStr = JSON.stringify(array);
// 发送 Ajax 请求
$.ajax(
{
url:"send/array/three.html", //提交请求的地址
type:"post", //提交的请求方式
data:obj, //提交的数据
"contentType":"application/json;charset=UTF-8",//设置请求体内容类型,
dataType:"text", //提交完成后返回的数据格式
success:function (response){ //服务端处理请求成功后调用的回调函数
alert(response);
},
error:function (response){ //服务端处理请求失败后调用的回调函数
alert(response);
}
} )
在controller:
@ResponseBody
@RequestMapping("/send/array/three.html")
public String
testReceiveArrayThree(@RequestBody List<Integer> array) {
//打印
for (Integer number : array) {
/* System.out.println("number="+number);*/
logger.info("number="+number);
}
return "success"; }
这样就已经完成了ajax的测试。