1
我需要解決方案,以便如何將攔截器驗證和控制器驗證與Spring結合起來,以便在頁面中顯示所有錯誤(來自攔截器和控制器)。在Spring MVC中結合了攔截器驗證和控制器驗證
我當前的場景: 當攔截器獲取錯誤,他重定向到當前頁面,並顯示錯誤,而不去控制器。
我需要去控制器也做其他驗證,並採取我攔截器錯誤,如果存在,因爲我需要用戶知道頁面中的所有錯誤。
我可以將攔截器的屬性傳遞給控制器嗎?解決方案是什麼?
我需要解決方案,以便如何將攔截器驗證和控制器驗證與Spring結合起來,以便在頁面中顯示所有錯誤(來自攔截器和控制器)。在Spring MVC中結合了攔截器驗證和控制器驗證
我當前的場景: 當攔截器獲取錯誤,他重定向到當前頁面,並顯示錯誤,而不去控制器。
我需要去控制器也做其他驗證,並採取我攔截器錯誤,如果存在,因爲我需要用戶知道頁面中的所有錯誤。
我可以將攔截器的屬性傳遞給控制器嗎?解決方案是什麼?
我會自攔截通過請求屬性通過驗證錯誤控制器:
public class FooInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
request.setAttribute("interceptorValidationErrors", "a list of validation errors");
return super.preHandle(request, response, handler);
}
}
而在這樣的控制器閱讀:
@Controller
public class FooController {
@RequestMapping("/foo")
String get(HttpServletRequest request) {
List<ObjectError> interceptorErrors = (List<ObjectError>) request.getAttribute("interceptorValidationErrors");
return "someViewName";
}
}
給我空指針異常時,試圖通過(request.getAttribute(「interceptorValidationErrors」)來訪問控制器中的屬性,請求對象被填充但沒有interceptorValidationErrors屬性。 –
@MohammedMostafa是你實際調用的攔截器嗎?你需要配置sprin g –
你說得對,但沒有達到request.setattribute,當我改變了攔截器擴展HandlerInterceptorAdapter來實現HandlerInterceptor它的工作正常(我不知道爲什麼!) –