本文记录SpringBoot学习中遇到的问题。
前文提及了操控注解@Controller
等的控制返回类型,现在给出返回json的三种实现方式
一、@RestController
这个方式前文已提及:
@RestController
public class SampleController {
@RequestMapping("/getUser")
public User getUser() {
User user = new User();
user.setId(123);
user.setSex("male");
user.setUsername("nicelee");
return user;
}
}
二、@ResponseBody
在类的注释为Controller
的情况下,在相应的方法注释前加上@ResponseBody
:
@Controller
public class SampleController {
@ResponseBody
@RequestMapping("/getUser")
public User getUser() {
User user = new User();
user.setId(123);
user.setSex("male");
user.setUsername("nicelee");
return user;
}
}
三、使用HttpServletResponse
这种方式使用HttpServletResponse
直接答复,页面返回null
@Controller
public class SampleController {
@RequestMapping("/getUser")
public String test(HttpServletResponse response){
User user = new User();
user.setId(123);
user.setSex("male");
user.setUsername("nicelee");
String data = JSON.toJSONString(user);
try {
response.setContentType("application/json;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println(data);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}