ajax的CRUD(增删改查)
使用已经搭建好的ssm框架和写好的接口与实现类
- @ResponseBody注解
将Object转成json字符串返回
要导入jackson库 - 添加依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.3</version>
</dependency>
若没有导入,则抛出异常HttpMessageNotWritableException: No converter found for return value of type: class java.util.ArrayList
ajax
- Asynchronous Javascript And XML(异步 JavaScript 和 XML),是一种用于创建快速动态网页的技术。
通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。即可以在不重新加载整个网页的情况下,对网页的某部分进行更新,不需要重定向或者请求转发
- 传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面。
- Ajax是局部刷新,点击链接调用函数,函数内部发起请求,处理返回结果,更新页面
- ajax工作原理
案例–实现一个简单网页的增删改查
创建一个返回结果实体类Result
package com.dsf.domain;
public class Result {
private int code;
private String msg;
private Object data;
public static Result init(int code,String msg,Object data){
Result result=new Result(code,msg,data);
return result;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
@Override
public String toString() {
return "Result{" +
"code=" + code +
", msg='" + msg + '\'' +
", data=" + data +
'}';
}
public Result(int code, String msg, Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public Result() {
}
}
Contorller层代码
查找显示数据库数据
@Controller
@RequestMapping("/dept2")
public class DepartmentContorller {
private static final Logger l= LoggerFactory.getLogger(DepartmentContorller.class);
@Autowired
IDepartmentService service;
@RequestMapping(path = "/listUI",method = RequestMethod.GET)
public String listUI(){
return "list_depts";
}
@RequestMapping(path = "/list",method = RequestMethod.GET)
public @ResponseBody Object list(){
List<Department> list=service.findAllDepartment();
return Result.