springboot 重定向redirect 并隐藏参数

在做全局异常处理的时候,碰到重定向到全局错误页面

所谓隐藏参数无非是把参数放到了session中,再重定向后将该值清除


1、全局异常处理方法

@ExceptionHandler(value = Exception.class)
public ModelAndView exceptionHandle(RedirectAttributes redirectAttributes) {
    ModelAndView modelAndView = new ModelAndView("redirect:/systemError");
    redirectAttributes.addFlashAttribute("error", "错误信息");
    return modelAndView;
}


2、重定向方法

@GetMapping("/systemError")
public ModelAndView systemError(@ModelAttribute("error") String error){
    ModelAndView modelAndView = new ModelAndView("error");
    modelAndView.addObject("error", error);
    return modelAndView;
}



### 实现重定向的方式 在Spring Boot中,有多种方式可以实现控制器中的重定向功能。最常见的是通过`RedirectView`对象或使用`redirect:`前缀返回字符串。 #### 使用 `redirect:` 前缀的方法 这是最为简便的一种做法,在处理器方法内直接返回带有`redirect:`前缀的目标URL即可: ```java @GetMapping("/oldPath") public String redirectExample() { return "redirect:/newPath"; } ``` 这种方式适用于简单的场景,且能够轻松地指定相对路径或是绝对路径[^3]。 #### 返回 RedirectView 对象 另一种更灵活的选择是创建返回一个`RedirectView`实例给视图解析器: ```java import org.springframework.web.servlet.view.RedirectView; @GetMapping("/anotherOldPath") public RedirectView anotherRedirectExample() { RedirectView redirectView = new RedirectView(); redirectView.setUrl("http://example.com/newLocation"); return redirectView; } ``` 这种方法允许开发者更加精细地控制重定向行为,比如设置状态码等参数。 #### 结合 Flash 属性传递数据 当执行重定向操作时,有时也需要携带一些临时性的消息或者提示信息至目标页面。这时就可以利用Flash属性来保存这些短暂存在的数据: ```java import org.springframework.ui.ModelMap; import org.springframework.web.servlet.mvc.support.RedirectAttributes; @PostMapping("/processForm") public String processForm(RedirectAttributes attributes) { // Add flash attribute attributes.addFlashAttribute("message", "Your form has been successfully submitted!"); return "redirect:/confirmationPage"; } ``` 上述代码片段展示了如何向即将访问的新页面发送一条闪存消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值