今天遇到一個應(yīng)用場景:
在需要在自定義的Interceptor中判斷用戶密碼是否過期奶稠,如果過期糙箍,則重定向到修改密碼頁讲仰,強制修改密碼,同時給出提示:“您的密碼已過期漾峡,請修改密碼”
判斷邏輯很簡單攻旦,但是重定向的時候需要前臺有消息提示,如果是在Controller中生逸,可以在方法上注入RedirectAttributes
參數(shù)牢屋,但是Interceptor中默認沒有這個參數(shù),那么我們?nèi)绾螌崿F(xiàn)RedirectAttributes
的flashMessage功能呢槽袄?
通過跟蹤Spring源碼烙无,發(fā)現(xiàn)了實現(xiàn)方法:
FlashMap flashMap = new FlashMap();
flashMap.put('warning', "密碼已過期,請先修改密碼!");
FlashMapManager flashMapManager = RequestContextUtils.getFlashMapManager(request);
flashMapManager.saveOutputFlashMap(flashMap, request, response);
搞定遍尺!