无数据跳转页面(适用于jsp)
-
说明
当处理方法的返回值类型为String时,即可以通过具体的返回值设置要访问的页面
-
处理方法
@RequestMapping("/demo01") public String demo01() { //指定要跳转的页面 return "/demo.jsp"; }
跳转方式
-
转发(默认)
在设置跳转页面的时候,使用关键字forward
@RequestMapping("/showPage1") public String showPage1() { return "forward:page.jsp"; }
-
重定向
在设置页面跳转的时候,使用关键字redirect
@RequestMapping("/showPage2") public String showPage2() { return "redirect:page.jsp"; }
带数据跳转页面
-
使用
HttpServletRequest
类型形参进行数据的传递@RequestMapping("/demo02") public String demo02(HttpServletRequest request) { //将要携带的数据存入请求域,携带到转达页面 request.setAttribute("name", "不知火舞"); //指定要跳转的页面 return "/demo.jsp"; }
-
使用Model类型形参进行数据传递
/** * 使用Model对象进行带数据跳转 * @param model * @return */ @RequestMapping("/demo03") public String demo03(Model model) { //创建用户对象 User user = new User("不知火舞", 18); //将user对象添加到Model对象中 model.addAttribute("user", user); //指定要跳转的页面 return "/demo.jsp"; }
在页面获取数据的时候使用
${对象名.属性名}
获取。 -
使用ModelAndView类型形参进行数据的传递,将对象作为返回值传递给调用者。
/** * 使用ModelAndView对象,进行带数据跳转页面 * @param modelAndView * @return */ @RequestMapping("/demo04") public ModelAndView demo04(ModelAndView modelAndView) { //创建用户对象 User user = new User("王昭君", 22); //将user对象添加到ModelAndView对象中 modelAndView.addObject("user", user); //设置要跳转的页面 modelAndView.setViewName("/demo.jsp"); //返回modelAndView对象 return modelAndView; }
-
注意
以上三种方法带数据跳转页面都不支持重定向跳转,如果使用重定向跳转页面,数据将不能携带过去。
返回JSON数据
-
使用数据说明
@ ResponseBody
:此注解的作用是将controller的方法返回的对象,通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
使用HttpServletResponse对象返回数据
-
处理方法
/** * 使用HttpServletResponse对象,进行带数据跳转页面 */ @RequestMapping("/demo05") public void demo05(HttpServletResponse response) throws IOException { response.getWriter().print("message"); }
-
响应结果
基于@ResponseBody注解,返回JSON数据
-
返回对象类型JSON数据
-
处理方法
/** * 返回对象类型JSON数据 */ @RequestMapping("/demo06") @ResponseBody public User demo06() { //创建用户对象 User user = new User("王昭君", 22); //直接返回user对象,spring转换器会自动将对象转化为json字符串返回 return user; }
-
响应结果
-
-
返回集合类型JSON数据
-
处理方法
/** * 返回Map集合类型JSON数据 */ @RequestMapping("/demo08") @ResponseBody public Map demo08() { //创建用户对象 User user1 = new User("王昭君", 22); User user2 = new User("不知火舞", 36); //将user对象添加到集合中 HashMap<String, User> map = new HashMap<>(); map.put("user1", user1); map.put("user2", user2); //直接返回map集合,spring转换器会进行自动转换 return map; }
-
响应结果
-