2009-12-02 5 views
4

url에 매핑 된 여러 methinds가 포함 된 컨트롤러가 있습니다. 이와 같이 :주석 처리 된 컨트롤러에 대한 HandlerExceptionResolver

@Controller 
public class CategoryController { 

@RequestMapping(value = "/addCategories") 
public void addCategories(@RequestParam(value = "data") String jsonData) throws ParseException 

@RequestMapping(value = "/getNext") 
public void getNext(@RequestParam(value = "data") String jsonData) throws ParseException 

... 

} 

메소드는 json 요청을 구문 분석하고 일부 작업을 수행해야합니다. 구문 분석 요청은 메소드에서 처리 할 수있는 체크 ParseException을 생성하거나 throws을 서명에 추가 할 수 있습니다. 나는 두 번째 접근 방식을 선호하는데, 그 이유는 코드에서 추가적인 try/catch를 원하지 않기 때문입니다. 컨트롤러 메서드에 대한 처리기를 구성하고 코드하는 방법에 대한 질문은 무엇입니까?

답변

3

@ExceptionHandler에 대한 봄 문서를 확인해야합니다.

@Controller 
public class CategoryController { 

@ExceptionHandler(ParseException.class) 
public ModelAndView handleParseExc(ParseException ex) { 
    //... 
} 

@RequestMapping(value = "/addCategories") 
public void addCategories(@RequestParam(value = "data") String jsonData) throws ParseException 


} 

또는 서브 클래스 AbstractHandlerExceptionResolver 당신은 모든 컨트롤러에 대한 이러한 예외를 처리 할 경우 XML 구성의 스프링 MVC 빈으로 선언합니다.

+0

또는 AbstractHandlerExceptionResolver을 하위 클래스로 만들고 xml 구성을 건너 뛰려면 @Component로 주석을 추가하십시오. –

관련 문제