SpringMVC响应数据

无数据跳转页面(适用于jsp)

  • 说明

    当处理方法的返回值类型为String时,即可以通过具体的返回值设置要访问的页面

  • 处理方法

    @RequestMapping("/demo01")
    public String demo01() {
    	//指定要跳转的页面
    	return "/demo.jsp";
    }
    
跳转方式
  1. 转发(默认)

    在设置跳转页面的时候,使用关键字forward

    @RequestMapping("/showPage1")
    public String showPage1() {
        return "forward:page.jsp";
    }
    
  2. 重定向

    在设置页面跳转的时候,使用关键字redirect

    @RequestMapping("/showPage2")
    public String showPage2() {
        return "redirect:page.jsp";
    }
    

带数据跳转页面

  1. 使用HttpServletRequest类型形参进行数据的传递

    @RequestMapping("/demo02")
    public String demo02(HttpServletRequest request) {
    	//将要携带的数据存入请求域,携带到转达页面
    	request.setAttribute("name", "不知火舞");
    	//指定要跳转的页面
    	return "/demo.jsp";
    }
    
  2. 使用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";
    }
    

    在页面获取数据的时候使用${对象名.属性名}获取。

  3. 使用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;
    }
    
  4. 注意

    以上三种方法带数据跳转页面都不支持重定向跳转,如果使用重定向跳转页面,数据将不能携带过去。

返回JSON数据

  1. 使用数据说明

    @ ResponseBody:此注解的作用是将controller的方法返回的对象,通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。

使用HttpServletResponse对象返回数据
  • 处理方法

    /**
     * 使用HttpServletResponse对象,进行带数据跳转页面
     */
    @RequestMapping("/demo05")
    public void demo05(HttpServletResponse response) throws IOException {
    	response.getWriter().print("message");
    }
    
  • 响应结果

    在这里插入图片描述

基于@ResponseBody注解,返回JSON数据
  1. 返回对象类型JSON数据

    • 处理方法

      /**
       * 返回对象类型JSON数据
       */
      @RequestMapping("/demo06")
      @ResponseBody
      public User demo06() {
      	//创建用户对象
      	User user = new User("王昭君", 22);
      	//直接返回user对象,spring转换器会自动将对象转化为json字符串返回
      	return user;
      }
      
    • 响应结果

      在这里插入图片描述

  2. 返回集合类型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;
      }
      
      
    • 响应结果

      在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值