2012-12-07 2 views
1

양식을 제출할 때 호출되는 @RequestParam args가있는 hanlder (@Controller 클래스의 메서드)가 있습니다. 문자열, ints, 열거 형 및 객체와 같은 다양한 유형의 args가 있습니다. spring이 arg에 param을 바인딩 할 수없는 경우 양식을 제출하면 오류 400 또는 500이있는 응답을 반환합니다. 아직 각 오류에 대해). 양식의 어떤 필드가 좋지 않은지 사용자에게 피드백을 보내서이 불일치를 처리하는 것이 좋습니다.Spring : @RequestParam에서 형식이 일치하지 않을 때의 오류 처리

모든 간단한 @RequestParams를 문자열로 변경하고 변환을 수행하는 간단한 사례가 있습니다. 핸들러 내부에 오류가 있으면 피드백으로 응답합니다. 오류는 유형 불일치에서 유효하지 않은 매개 변수 (예 : 연령이 음수)까지 다양합니다.

더 좋은 방법이 있습니까?

답변

2

@RequestParam은 사용자가 입력하지 않고 응용 프로그램에서 매개 변수를 생성하는 경우에 가장 적합합니다.

사용자에게 피드백을 제공하려면 @ModelAttributeBindingResult과 함께 기존 양식 처리 방법을 사용하는 것이 좋습니다. 이렇게하면 임의의 유효성 검사를 수행 할 수 있으며 provide meaningful error messages for type mismatch errors도 가능합니다.

+0

"응용 프로그램에서 매개 변수가 생성되는 상황"에 대해 무슨 말을하는 겁니까? 내 앱이 requestParam을 어떻게 생성 할 수 있습니까? 요청 전달을 의미합니까? – ApollonDigital

+0

@ApollonDigital : 사용자가 양식에 값을 입력하는 대신 응용 프로그램에서 생성 된 링크 (매개 변수 포함)를 따르는 경우를 의미합니다. – axtavt

+0

어쨌든 서버에 올 수있는 요청에 대해 확신 할 수 없습니다. 누구나 사용자 정의 요청을 작성하여 보낼 수 있습니다. 나는 구현이 달라져야한다고 생각하지 않는다. 어쨌든 ... Im은 봄에 비교적 새 것이므로 어떤 추가 세부 사항도 appriciated 될 것입니다. 조금 검색하여 JSR-303과 같은 것을 발견했습니다 ... 무엇인지, 그리고 javax.validation 패키지와 어떤 관계가 있는지 모르겠습니다 ... – ApollonDigital

관련 문제