本文共 2217 字,大约阅读时间需要 7 分钟。
本章我们讲解@ResponseBody
和@RequestBody
两个注解。需要继续导入jar
包
链接:https://pan.baidu.com/s/1OR-s_JjYsNkCZX7khZCW2Q
提取码:rfug
@ResponseBody
把后台pojo转换json对象,返回到页面。
@RequestBody
接受前台json数据,把json数据自动封装javaBean。 1.添加数据格式转换配置
DispatcherServlet-servlet.xml
里面配置适配器的时候加上下面配置。 红框内容如下: 2.创建StudentController
@Controller@RequestMapping("stu")public class StudentController { @RequestMapping("register") public String toReg(){ return "student/register"; } @RequestMapping("save") public String save(Student stu, Model model){ model.addAttribute("stu",stu); System.out.println(stu); return "student/StudentInfo"; }}
3.创建Student类
public class Student { public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNumber() { return number; } public void setNumber(int number) { this.number = number; } @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", number=" + number + '}'; } private String name; private int number;}
4.可以提交json数据的jsp页面register.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>注册学生档案
5.注册成功后的StudentInfo.jsp
页面
<%@ page contentType="text/html;charset=UTF-8" language="java" %>注册成功 姓名:${stu.name}学号:${stu.number}
接下来我们访问http://localhost:8080/stu/register.do
stu
对象的各个属性为null
,并且弹出错误。我们分析一下,我们在点击提交后,我们的json
格式的字符串{name:“jack”,number=123456}被传送到save()方法,但是我们的Student对象没法成功转化,因此其属性被注入空,从而引起了错误。 @RequestMapping("save") public String save(Student stu, Model model){ model.addAttribute("stu",stu); System.out.println(stu); return "student/StudentInfo"; }
我们需要这样做:
@RequestBody
可以把json数据转成模型对象(即Student
对象) 我们再次测试: 那么接下来@ResonseBody
的作用就是把把对象转换为json对象
返回客户端。 save()
方法修改为下面内容: 再次测试: 上面是[Object,Objiect]
,如果想打印json
格式,可以这么做 这里需要注意一下:发送数据的时候需要JSON.stringfy
来转换一下为json
格式,否则报错,而返回的时候是对象,要想打印json
格式也需要JSON.stringfy
来转换一下为json
格式。 转载地址:http://sxlzi.baihongyu.com/