게시글을 저장했을때 create가 제대로 작동하지 않았다.
기존 코드
@PostMapping(path = "/problem/create")
String operate(RedirectAttributes redirectAttributes, Authentication authentication,
@Valid @ModelAttribute("dto") ProblemDto dto,
BindingResult bindingResult, Model model, HttpServletRequest request) throws IOException {
BranchDto branch = (BranchDto)request.getAttribute("commonCurrentBranch");
if(bindingResult.hasErrors()) {
commonUtil.addJsonAlertMessages(commonUtil.getRequest().getSession(), bindingResult);
return "branch/application/problem/view";
}
Problem createdItem = problemCreateUpdateService.operate(modelMapper.map(dto, Problem.class));
return "redirect:/problem/complete";
}
}
수정 코드
@PostMapping(path = "/problem/create")
String operate(RedirectAttributes redirectAttributes, Authentication authentication,
@Valid @ModelAttribute("dto") ProblemDto dto,
BindingResult bindingResult, Model model, HttpServletRequest request) throws IOException {
BranchDto branch = (BranchDto)request.getAttribute("commonCurrentBranch");
Problem createdItem = problemCreateUpdateService.operate(modelMapper.map(dto, Problem.class));
return "redirect:/problem/complete";
}
}
>> bindingResult.hasErrors() 이 부분만 제거 해줬더니 제대로 create 되었다.
저 에러내용은 무엇인지 제대로 파악한 후 근본적인 해결이 필요하다고 생각하였음
- 해결 -
유효성 검사 실패
Dto에 항목에 걸어두었던 '@NotNull ' 유효성 검사를 통과하지 못했기때문에 @Valid 어노테이션을 붙이므로 해서 유효성 검사 실패로 bindingResult.hasErrors()가 true를 반환하였던 것이다. 그래서 그 이후에 ' problemCreateUpdateService.operate '가 실행되지 않아서 데이터베이스에 데이터가 저장되지 않았던것
유효성 검사를 통과하게 Dto를 수정하거나 create 하기전에 데이터를 넣으면 된다.
Front에서 필요없던 @NotBlank를 Dto에서 제거해줌으로서 해결완료
'Error Note' 카테고리의 다른 글
[Linux] Jenkins 설치중에 yum install 관련 오류 정리 (1) | 2025.03.28 |
---|---|
Docker 실행 시 WSL2 및 BIOS 오류 및 해결법 (1) | 2025.02.03 |
pom.xml에서 Missing artifact 오류 (0) | 2024.07.01 |
[Spring]java.lang.IllegalArgumentException (0) | 2024.07.01 |
List와 Page의 차이점에 대해서 (0) | 2024.06.07 |