我正在制作一個處理程序,其中當(dāng)用戶嘗試訪問不存在的 url 時,我應(yīng)該能夠?qū)⒂脩糁囟ㄏ虻降卿涰撁婊蜃远x錯誤頁面,我正在使用異常處理程序來捕獲錯誤,但問題是它不會轉(zhuǎn)到處理程序,而是只給我一個白標(biāo)錯誤頁面..這是代碼:@ExceptionHandler(value = ResourceNotFoundException.class) public String exception(ResourceNotFoundException e, HttpServletRequest request, RedirectAttributes redirectAttributes) { long now = new Date().getTime(); long lastAccessed = request.getSession().getLastAccessedTime(); boolean isNotLoggedIn = (now - lastAccessed) <= 0L; if (isNotLoggedIn) { return "forward:/login"; } return "forward:/access-forbidden?errorMessage=Page Not found."; }
2 回答

森林海
TA貢獻(xiàn)2011條經(jīng)驗 獲得超2個贊
我想你可以試試這個,至少它對我有用:
在 中添加這兩個屬性application.properties:
spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false
將異常類型從 更改ResourceNotFoundException為NoHandlerFoundException
@ExceptionHandler(value = NoHandlerFoundException.class)
public String exception(NoHandlerFoundException e, ...) {

慕婉清6462132
TA貢獻(xiàn)1804條經(jīng)驗 獲得超2個贊
確保在處理這些異常的類中包含@ControllerAdvice
注釋和擴(kuò)展ResponseEntityExceptionHandler
。
添加回答
舉報
0/150
提交
取消