Json处理:
@RequestBody 返回json数据或者字符串到前端,
不加这个解析会理解成为之前的前面加一个/后面加一个.jsp的跳转
1.如果handler中返回String,那么直接将内容返回到前端,而不像之前一样被解析成.jsp的格式
2.如果handler中返回json或,对象,则转成json返回到前端
a.这里主要主要中文解码问题,返回json或string不进行之前的加/和jsp的解析时用@ResponseBody进行解析,放回json或者字符串到前端
@Controller
@RequestMapping("/json")
public class JasonController {
@RequestMapping(value = "/returnValue",produces = "text/html;charset=utf-8")//produces = "text/html;charset=utf-8"处理中文乱码
@ResponseBody //响应内容,相当于放回一个字符串或json数据到前端
public String returnValue(){
System.out.println("value");
return "returnValue,你好"; // user.jsp response.getWriten().write("user...");直接回传字符串到前端
}
b.这里主要时对象的处理,pom.xml中加jackson-databind,会把返回的对象自动解析成json数据
@ResponseBody//解析字符串,对象User无法解析,不能返回对象,可以解析成json数据进行放回
@RequestMapping("/user")
public User user(){//pom.xml中加jackson-databind,会把返回的对象自动解析成json数据
System.out.println("------");
return new User();
}
c.这里主要是对对象的深化,将其放入数组,然后解析对象数组,注意Java中数组的定义于使用List<User> list = new ArrayList<>();
@ResponseBody//解析字符串,对象User无法解析,不能返回对象,可以解析成json数据进行放回
@RequestMapping("/list")
public List<User> list(){//pom.xml中加jackson-databind,会把返回的对象自动解析成json数据
System.out.println("---list---");
List<User> list = new ArrayList<>();
list.add(new User());
list.add(new User());
return list;
}
}
@RestController //@ResponseBody和@Controller的组合,如果本文件中访问的全部是json或者String类型,就可以直接这样用 public class JasonController {} 放在最前面