我正在使用Spring MVC將一些servlet遷移到Spring框架。目前在每個servlet我們驗證用戶時,如果驗證失敗,我們這樣做:從Spring控制器或服務返回錯誤和消息
if (authfailed)
{
response.sendError(HttpServletResponse.SC_UNAUTHORIZED,
"You are not authorized.");
return;
}
在前端是一個基於YUI的應用程序,並在返回一個錯誤狀態的「失敗」的回調顯示一個對話框與上面給出的錯誤信息。
我知道在我的控制器中我可以得到響應對象並且調用sendError
,但這是處理這個問題的最好方法嗎? sendError
也拋出一個IOException,所以我必須捕捉到 - 在每個控制器的每個方法中插入一些煩人的代碼。
我有同樣的問題處理異常 - servlet有try-catch塊,在catch方法中調用sendError
。我知道我可以
@ExceptionHandler
@ResponseStatus(value = HttpStatus.NOT_FOUND)
記住我的異常處理程序,但不異常處理類需要在每個控制器類?最後,如果在從控制器調用的服務中發生異常,是否將異常冒泡到控制器,還是應該處理服務中的異常(從而將這些異常處理問題推送到服務層)?
這似乎比它應該更困難,但就像在春天很多事情一樣,我可能不知道發生了什麼事情。我想要做的就是在響應中發送錯誤狀態和消息!
感謝,
保羅
謝謝 - 我正在過問這個問題。有時,這種情況發生的時候我和春天工作...我得到太多的想法在我的腦海,並且無法理清。 – Paul 2011-04-25 12:11:16