2017-03-24 4 views
0

페이지 범위 (begin & 끝 페이지 번호)를 허용하는 스프링 안정 종점에서 작업하고 있습니다. 내 요청 매개 변수 - pageStart 및 pageEnd가 정수만 허용하도록합니다. 나는 통과하면 'pageStart = A'우편 배달부를 통해 나는 오류가 아래 얻을 :정수 요청 만 허용하는 스프링 요청 매개 변수

@RequestMapping(value = "/{accNumber}/abc/xyz", method = RequestMethod.GET) 
    @Loggable 
    @ResponseBody 
    public RestResponse<Class1> getData(
     @Loggable @PathVariable(value = "accNumber") String accNumber, 
     @RequestParam(value = "pageStart", required = false, defaultValue = "0") Integer pageStart, 
     @RequestParam(value = "pageEnd", required = false, defaultValue = "10") Integer pageEnd, 
     HttpServletResponse response) throws Exception { 

    Class1 class1 = new Class1(); 
    class1 = retrieveData(accNumber, pageStart, pageEnd); 
    RestResponse<Class1> restResponse = new RestResponse<Class1>(
      class1); 

    return restResponse; 
    } 

요청 유효하지 않습니다 [유형의 값 java.lang.Integer에 필요한 유형 'java.lang.String의'을 '변환 할 수 없습니다 '; 중첩 예외는 java.lang.NumberFormatException : 입력 문자열 : \ "a \"]

이 예외를 처리하고 사용자에게 정수 만 전달해야 함을 알리려면 어떻게해야합니까?

+1

먼저 코드를 공유 한 후 제안 할 수 있습니다. –

+0

! @ TharsanSivakumar – Anonymous

답변

0

두 가지 방법

1)

컨트롤러

@ExceptionHandler({Exception.class}) 
    public ModelAndView handleException(Exception ex) { 
     ModelAndView model = new ModelAndView("Exception"); 

     model.addObject("exception", ex.getMessage()); 

     return model; 
    } 

http://www.codejava.net/frameworks/spring/how-to-handle-exceptions-in-spring-mvc

2)를 사용하여 String 매개 변수

의 방법을 가지고 예외 핸들러의 방법을 사용하여 그것을 처리 할 수 ​​있습니다

문자열을 모두 @ PathVariable 및 @RequestParameter 매개 변수는 처리기 메서드 내에서 구문 분석을 수행합니다.

+0

문제가 해결 되었습니까? –

+0

감사합니다. @ TharsanSivakumar 첫 번째 옵션은이 문제를 해결하는 데 도움이됩니다. 하지만 두 번째 옵션을 고려해 보면, 요청 매개 변수를 String으로 설정하면 아무 것도받지 못합니다. 내 끝점이 페이지 범위만큼 정수만 받아 들여지 길 원합니다. 어떻게해야합니까? – Anonymous

+0

그런 다음 첫 번째 옵션으로 가서 당신은 우체부에 제공된 링크 –