2014-06-20 2 views
4

내 응용 프로그램에서 간단한 양식의 유효성을 검사해야합니다. 이 양식에는 하나 또는 두 개의 입력 텍스트가 있으므로 모든 양식에 특정 ModelAttribute 클래스를 작성하지 않으려 고합니다. 대신 일반 HTML 양식을 사용하고 @RequestParam 주석을 사용하여 POST 매개 변수를 처리하고 싶습니다.일반 HTML 양식의 스프링 양식 유효성 확인

(모델 속성을 사용하지 않고)이 상황에서 스프링 양식 유효성 검사를 사용하는 방법이 있습니까? 아니면 각 양식에 대해 백업 양식 개체와 유효성 검사기를 구현해야합니까?

답변

3

현재 , @PathVariable 등등에 @Valid을 사용하여 인증을 실행하지 못할 수 있습니다. This은 Spring Issue Tracker의 관련 기능 요청입니다. Spring 4.1을 위해 우리의 손가락을 교차 시키자! 귀하의 경우에는

, 당신은 @ModelAttribute를 사용하거나 컨트롤러 내에서 사용자 지정 유효성 검사를 수행해야 할 것 중 하나 (또는 ​​어쩌면 봄 인터셉터 동일한 유효성 검사가 여러 엔드 포인트에 적용 할 경우)

+0

'Map'을'ModelAttribute'로 사용할 수 있습니까? – davioooh

+0

'Map '을 사용하여 스프링 MVC가 모든 인수를 제공하도록 강제 할 수는 있지만 유효성 검증이 실행될 것임을 진심으로 의심한다. – geoand

1

주석으로이 작업을 수행 할 수 있다고 생각합니다. 당신이 좋아하는 당신의 매개 변수를 주석에 대한 특별한 경우의 수

  • @Size (분 = 3, 최대 = 5)
  • @NotNull
  • @NotEmpty

...

0

확실히 Spring의 유효성 검사 API (Errors 객체)를 사용할 수 없습니다.

java.lang.IllegalStateException: An Errors/BindingResult argument is expected to be declared immediately after the model attribute, the @RequestBody or the @RequestPart arguments to which they apply 
1

모델 속성이 없으면 스프링 양식 유효성 검사를 수행 할 수 없습니다. 스프링 폼 검증은 폼 요소와 모델 애트리뷰트 사이의 연결 인 스프링 폼 바인딩 (Spring Form Binding)에 의존하기 때문에. 그래서 양식이 얼마나 작을 수 있는지, DTO (모델 속성)를 만들고 양식을 바인딩하여 유효성 검사를 수행하십시오.

0

당신은 모델의 인스턴스 수 일반 폼의 데이터로 채우고 프로그래밍 방식으로 해당 개체의 유효성을 검사합니다.