728x90
반응형
에러 내용
Request 클래스의 validator 에러처리를 추가하고 있었는데 아래와 같은 에러를 발견하였다.
Request processing failed; nested exception is org.springframework.beans.NotReadablePropertyException: Invalid property 'nickname' of bean class [AccountUpdateDto.Nickname]: Bean property 'nickname' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
getter/setter가 붙어있는데도 저런 에러가 떠서 대체 뭐지 했는데..
원인, 해결
public void validate(Object target, Errors errors) {
AccountUpdateDto.Nickname accountUpdateDto = (AccountUpdateDto.Nickname)target;
if(isSameNickname(accountUpdateDto)) {
errors.rejectValue("nickname", "wrong.nickname", "수정될 닉네임을 정확히 입력해주세요.");
}
if(!isValidNickname(accountUpdateDto.getPrevNickname())) {
errors.rejectValue("nickname", "wrong.nickname", "존재하지 않는 계정입니다.");
}
if(isValidNickname(accountUpdateDto.getNewNickname())) {
errors.rejectValue("nickname", "wrong.nickname", "이미 사용중인 닉네임 입니다.");
}
}
errors.rejectValue("nickname", ...)
이 부분이 원인이었다. dto 클래스에는 nickname 이라는 프로퍼티가 없었다.
public static class Nickname {
private String prevNickname;
@NotBlank
@Length(min = 3, max = 20)
@Pattern(regexp = "^[ㄱ-ㅎ가-힣a-z0-9_-]{3,20}$")
private String newNickname;
}
에러정보를 담는거겠거니 하고 프로퍼티명에 주의 안하고 적었는데 이렇게 들통이 나버렸다 ㅎㅎ;
@Override
public void validate(Object target, Errors errors) {
AccountUpdateDto.Nickname accountUpdateDto = (AccountUpdateDto.Nickname)target;
if(!isValidNickname(accountUpdateDto.getPrevNickname())) {
errors.rejectValue("prevNickname", "wrong.prevNickname", "존재하지 않는 계정입니다.");
} else {
if(isValidNickname(accountUpdateDto.getNewNickname())) {
errors.rejectValue("newNickname", "wrong.newNickname", "이미 사용중인 닉네임 입니다.");
}
if(isSameNickname(accountUpdateDto)) {
errors.rejectValue("newNickname", "wrong.newNickname2", "수정될 닉네임을 정확히 입력해주세요.");
}
}
}
위처럼 프로퍼티명 일치하게 붙여서 해결하였다. 실수하지 않도록 주의하자!!
728x90
반응형
'Spring' 카테고리의 다른 글
[SpringBoot] IntelliJ 에서 Spring Boot Web 프로젝트 생성하기 (0) | 2021.07.12 |
---|---|
[IntelliJ/Spring] 테스트 실행 에러 해결 (Build failed with an exception) (0) | 2021.04.14 |
[Spring] ModelMapper Entity to DTO 변환 시 프로퍼티 null 해결 (0) | 2021.03.24 |
[SpringBoot] @ExceptionHandler 적용 시 HttpMediaTypeNotAcceptableException 에러 해결 (8) | 2021.03.16 |
[SpringBoot] h2-console 웹 접근안될 때 해결 방법 (0) | 2021.03.08 |