为了账号安全,请及时绑定邮箱和手机立即绑定

一旦被异常捕获,从异常处理程序重定向到控制器的操作?

一旦被异常捕获,从异常处理程序重定向到控制器的操作?

慕沐林林 2021-09-29 17:49:34
我使用以下代码从异常处理程序重定向到控制器的操作,它正在工作,但 flowid 被附加到客户端的浏览器 URL 中。在没有那个flowid的情况下,有没有其他方法可以做到这一点?您也可以在http://localhost:8080/sample/home?flowId=fd19e86a-d9f8-485c-858c-41bcc5a10cd9下方看到 URL@ExceptionHandler(DataAccessException.class)public ModelAndView handleError(HttpServletRequest req, DataAccessExceptionex) {        logger.error("Request: " + req.getRequestURL() + " raised " + ex);        ModelAndView mav = new ModelAndView("redirect:/home");        mav.addObject("exception", ex);        mav.addObject("url", req.getRequestURL());       return mav;      }
查看完整描述

2 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

您可以使用 HttpServletResponse.sendRedirect():


    @ExceptionHandler(DataAccessException.class)

    public ModelAndView handleError(HttpServletRequest req, final HttpServletResponse response, DataAccessException ex) {

        logger.error("Request: " + req.getRequestURL() + " raised " + ex);


        response.sendRedirect("/sample");


        return null;

      }


查看完整回答
反对 回复 2021-09-29
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

这是 的默认行为spring redirect。您可以按照以下步骤进行更改:

  • ---基于XML的配置---*

    对于XML基于配置的配置,只需添加<mvc:annotation-driven ignoreDefaultModelOnRedirect="true" />您的custom servlet xml configuration.

  • ---基于Java的配置---

    您可以自动装配现有的RequestMappingHandlerAdapter并设置默认IgnoreDefaultModelOnRedirect属性true,如下所示 -

 @EnableWebMvc

 @Configuration

 public class CustomWebConfig {

     @Autowired

     private RequestMappingHandlerAdapter requestMappingHandlerAdapter;


     @PostConstruct

     public void init() {

        requestMappingHandlerAdapter.setIgnoreDefaultModelOnRedirect(true);

     }

 }

现在您可以使用与ModelAndView您在示例中使用的相同的redirect.


查看完整回答
反对 回复 2021-09-29
  • 2 回答
  • 0 关注
  • 228 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信