SpringMVC实现方法上传、控制器方法的返回值

1.1 返回值分类

1.1.1返回String

默认会转发:

SpringMVC实现方法上传、控制器方法的返回值

 1.1.2 返回void

应用:

  1. 自己在方法内部通过servletApi返回结果。举例:方法内部自己重定向、转发、返回json字符串。
  2. 文件下载,此时返回void。

SpringMVC实现方法上传、控制器方法的返回值

1.1.3 返回ModelAndView

  •  ModelAndView是SpringMVC 为我们提供的一个对象,该对象也可以用作控制器方法的返回值。该对象中有两个方法。

SpringMVC实现方法上传、控制器方法的返回值 SpringMVC实现方法上传、控制器方法的返回值

package com.sunny.e_retv;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletResponse;

@Controller
public class ReturnValueController {
    /**
     * 1.返回String
     */
    @RequestMapping("/returnString")
    public String returnString(){
        return "success";
    }

    /**
     * 2.返回void
     */
    @RequestMapping("/returnVoid")
    public void returnVoid(HttpServletResponse response){
    }

    /**
     * 3.返回ModelAndView
     * 应用:
     * 当希望控制器方法既要存储数据、又要跳转时候时候
     */
    @RequestMapping("/mv")
    public ModelAndView mv(HttpServletResponse response){
        ModelAndView mv = new ModelAndView();
        // 数据存储到request域
        mv.addObject("cn","China");
        // 跳转的结果视图页面
        mv.setViewName("success");
        return mv;
    }

    /**
     * 4.返回String,通过forward转发
     */
    @RequestMapping("/forward")
    public String forward(){
        return "forward:/pages/success.jsp";
    }

    /**
     * 5.返回String,通过redirect重定向
     * 应用:保存成功后,重定向到列表
     */
    @RequestMapping("/redirect")
    public String redirect(){
        return "redirect:/pages/success.jsp";
    }
}