본문으로 바로가기

Spring에서 Pageable 사용시 필요한 xml 설정

스프링에서 Pageable을 사용하려면 아래와 같은 세팅을 해야 한다.
Pageable에 대한 구현 리졸버와 정렬 리졸버에 대한 세팅을 해야 한다.
그리고 여러 리졸버 사용시 DomainClassConverter와 conversionService가 필요하다.([1] 참조)

그리고 나와 같은 경우, 하단 설정을 하기 전에 이미 annotation-driven에 대한 설정이 xml 상단에 이미 되어 있었는데
해당 설정을 지우지 않고 아래와 같이 설정을 했더니 아래 설정이 적용이 되지 않아서 한참을 고생했다.
이미 annotation-driven 설정이 있다면 하단 설정을 지우고 해야만 한다.

@Valid 설정에 대한 문제

하단과 같이 "annotation-driven" 설정을 하게 되면, 기본 설정이 적용이 되지 않아서
기존 @Valid에 대해 설정을 해놓은 Controller에서 모두 문제가 발생한다. 파라미터 값을 객체에 매핑하기 전에 유효성 검사를 해야 하는데
Validator에 대한 설정을 찾지 못해서 유효성 검사를 못할뿐더러 객체에 대한 파라미터 매핑조차 되지가 않아서 ModelAttribute의 모델들에 모두 null값이 들어가있는 상황이 발생해버린다.
그래서 아래 설정과 같이 validator에 대한 bean을 생성한 후에 annotation-driven에서 validator 대상 설정을 해줘야지만 기본 설정과 같이 올바르게 동작을 한다.


* servlet-context.xml





Reference

[1] StackOverflow (http://stackoverflow.com/questions/22135002/spring-data-does-not-handle-pageable-action-argument-creation)

저작자 표시 비영리 변경 금지
신고

댓글을 달아 주세요

티스토리 툴바