import com.alibaba.fastjson.JSON;
import com.qfedu.entity.Student;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//@Controller标注本类为控制类
@Controller
//@RequestMapping("/StudentController2")设置当前类的虚拟路径,就是拼接一个类在路径字符串中的位置,
@RequestMapping("/StudentController2")
public class StudentController2 {
/**
* 前后端数据交互 通过ajax 进行交互 交互格式是json
*
* 返回json 数据
* @param id
* @return
*/
// @RequestMapping("/findStudentById"),拼接控制器方法在路径字符串中的位置
@RequestMapping("/findStudentById")
public void findStudentById(int id, HttpServletResponse response) throws IOException {
Student student = new Student();
student.setId(id);
student.setName("XXX");
//http://localhost:8080/StudentController2/findStudentById?id=888
// 传参并通过响应对象response返回数据
// 通过 FastJson 转换为Json 串
response.getWriter().write(JSON.toJSONString(student));
}
/**
* 返回java对象
* @param id
* @return
*/
// @RequestMapping("/"),拼接控制器方法在路径字符串中的位置
@RequestMapping("/findStudentByIdJson")
//@ResponseBody 设置返回值为回写数据格式,而不是跳转的路径字符串,不写,返回值会按路径处理
@ResponseBody
public Student findStudentByIdJson(int id){
Student student = new Student();
student.setId(id);
student.setName("XXX");
//将返回值直接作为返回前端的数据,并由视图解析器通过我们导入的jackson包自动转为JSON字符串
return student;
}
/**
* 普通 ajax 提交数据 使用对象接收
* @param student
* @return
*/
// @RequestMapping("/"),拼接控制器方法在路径字符串中的位置
@RequestMapping("/updateStudent")
//@ResponseBody 设置返回值为回写数据格式,而不是跳转的路径字符串,不写,返回值会按路径处理
@ResponseBody// 返回json 数据
public Student updateStudent(Student student){
System.out.println("更新学生:"+student);
//将参数封装进对象,再返回这个对象,并通过视图解析器转为JSON对象
return student;
}
/**
* 接收json 数据
* @param student
* @return
*/
// @RequestMapping("/"),拼接控制器方法在路径字符串中的位置
@RequestMapping("/updateStudentJson")
//@ResponseBody 设置返回值为回写数据格式,而不是跳转的路径字符串,不写,返回值会按路径处理
@ResponseBody
// @RequestBody 将前端数据封装进形参类型容器
public Student updateStudentJson(@RequestBody Student student){
student.setName(“XXX”);
System.out.println(“更新学生:”+student);
return student;
}
}