SpringBoot 重定向和转发
⏹SpringBoot 重定向和转发
·
1. 转发
@Controller
@RequestMapping("/test7")
public class Test7Controller {
/**
* 当方法满足三个条件后,会当做转发进行处理
* 1. 接口返回值为String类型
* 2. 返回值格式:forward:转发的路径
* 3. 方法或者类上不要标注@ResponseBody注解
*/
@GetMapping("/init1")
public String init1() {
// 将 /test7/init 的请求转发给 /test6/init
return "forward:/test6/init";
}
}
⭕效果
- 地址栏是
test7/init
,但是页面展示的是test6的页面
2. 重定向
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
@Controller
@RequestMapping("/test7")
public class Test7Controller {
/**
* 当方法满足三个条件后,会当做重定向进行处理
* 1. 接口返回值为String类型
* 2. 返回值格式:redirect:重定向的路径
* 3. 方法或者类上不要标注@ResponseBody注解
*/
@GetMapping("/init2")
public String init2(RedirectAttributes redirectAttributes) {
/*
* 通过redirectAttributes.addAttribute丢进去的参数,
* SpringMVC重定向的时候,会自动将这些参数以?参数1=值1&参数2=值2拼接到重定向的地址上
*/
redirectAttributes.addAttribute("name", "jmw");
redirectAttributes.addAttribute("age", "28");
// 💪💪💪重定向
return "redirect:/test6/init";
}
}
@Controller
@RequestMapping("/test6")
public class Test6Controller {
@GetMapping("/init")
public ModelAndView init(
@RequestParam(required = false) String name
, @RequestParam(value = "age", required = false) Integer age
) {
System.out.println(name);
System.out.println(age);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("test6");
return modelAndView;
}
}
⭕效果
- 地址栏输入
- 重定向到新画面,地址栏url改变
- 被重定向到的页面,接收参数
更多推荐
已为社区贡献14条内容
所有评论(0)