day47 πŸŒ•

μž₯λ―ΈΒ·2022λ…„ 7μ›” 30일
0

였늘의 μ„±κ³Ό

λͺ©λ‘ 보기
47/129

μŠ€ν”„λ§ MVC 2편 - λ°±μ—”λ“œ μ›Ή 개발 ν™œμš© 기술 μ„Ήμ…˜ 4 μ΄μ–΄μ„œ μˆ˜κ°•

+) 22. 08. 03. 정리 μΆ”κ°€

μ„Ήμ…˜ 4. 검증1 - Validation μˆ˜κ°• μ™„λ£Œ!!

BindingResult에 검증 였λ₯˜λ₯Ό μ μš©ν•˜λŠ” 방법
1. @ModelAttribute의 객체에 νƒ€μž… 였λ₯˜ λ“±μœΌλ‘œ 바인딩이 μ‹€νŒ¨ν•˜λŠ” 경우 μŠ€ν”„λ§μ΄ FieldErrorλ₯Ό μƒμ„±ν•΄μ„œ BindingResult에 λ„£μ–΄μ€€λ‹€.
2. κ°œλ°œμžκ°€ 직접 λ„£μ–΄μ€€λ‹€.
3. Validatorλ₯Ό μ‚¬μš©ν•œλ‹€.

νƒ€μž„λ¦¬ν”„μ˜ μ‚¬μš©μž μž…λ ₯ κ°’ μœ μ§€
th:field: 정상 μƒν™©μ—λŠ” λͺ¨λΈ 객체의 값을 μ‚¬μš©ν•˜μ§€λ§Œ, 였λ₯˜κ°€ λ°œμƒν•˜λ©΄ FieldError에 λ³΄κ΄€ν•œ 값을 μ‚¬μš©ν•΄μ„œ 좜λ ₯ν•œλ‹€.

μŠ€ν”„λ§μ˜ 바인딩 였λ₯˜ 처리
μŠ€ν”„λ¦¬μ€ νƒ€μž… 였λ₯˜λ‘œ 바인딩에 μ‹€νŒ¨ν•˜λ©΄ FieldErrorλ₯Ό μƒμ„±ν•˜λ©΄μ„œ μž…λ ₯ν•œ 값을 λ„£μ–΄λ‘”λ‹€. 그리고 ν•΄λ‹Ή 였λ₯˜λ₯Ό BindingResult에 λ‹΄μ•„ 컨트둀러λ₯Ό ν˜ΈμΆœν•œλ‹€.


FieldError, ObjectError의 μƒμ„±μžλŠ” codes, argumentsλ₯Ό μ œκ³΅ν•œλ‹€. 이것은 였λ₯˜ λ°œμƒ μ‹œ 였λ₯˜ μ½”λ“œλ‘œ λ©”μ‹œμ§€λ₯Ό μ°ΎκΈ° μœ„ν•΄ μ‚¬μš©λœλ‹€.

BindingResultκ°€ μ œκ³΅ν•˜λŠ” rejectValue(), reject()λ₯Ό μ‚¬μš©ν•˜λ©΄ FieldError, ObjectErrorλ₯Ό 직접 μƒμ„±ν•˜μ§€ μ•Šκ³ λ„ κΉ”λ”ν•˜κ²Œ 검증 였λ₯˜λ₯Ό λ‹€λ£° 수 μžˆλ‹€.


MessageCodesResolver
검증 였λ₯˜ μ½”λ“œλ‘œ λ©”μ‹œμ§€ μ½”λ“œλ“€μ„ μƒμ„±ν•œλ‹€.
required.item.itemName처럼 ꡬ체적인 것을 λ¨Όμ € λ§Œλ“€μ–΄μ£Όκ³ , required처럼 덜 ꡬ체적인 것을 κ°€μž₯ λ‚˜μ€‘μ— λ§Œλ“ λ‹€.


크게 μ€‘μš”ν•˜μ§€ μ•Šμ€ λ©”μ‹œμ§€λŠ” λ²”μš©μ„± μžˆλŠ” required 같은 λ©”μ‹œμ§€λ‘œ 끝내고, μ€‘μš”ν•œ λ©”μ‹œμ§€λŠ” κΌ­ ν•„μš”ν•  λ•Œ ꡬ체적으둜 μ μ–΄μ„œ μ‚¬μš©ν•˜λŠ” 방식이 νš¨κ³Όμ μ΄λ‹€.


내일 ν•˜λŠ˜, 인쀀 λ§Œλ‚˜μ„œ λ°œν‘œν•  κ±° 정리!!! (DB νŠΈλžœμž­μ…˜)

κ³ ν•©λ‹ˆλ‹€... μ›λž˜ μŠ€ν”„λ§ νŠΈλžœμž­μ…˜λ„ 같이 λ°œν‘œν•˜λ € ν–ˆλŠ”λ° DB만 해도 양이 λ„ˆλ¬΄ λ§Žλ„€... κ²°κ΅­ 일단 DB νŠΈλžœμž­μ…˜λ§Œ μ™„μ„±ν–ˆμŠ΅λ‹ˆλ‹€...


벨둜그 λͺ» μ±„μš΄ 것듀 μ •λ¦¬ν•΄μ„œ μΆ”κ°€ν•˜κΈ°

βœ”οΈ μŠ€ν”„λ§ MVC κ°•μ˜ λ‚΄μš© μ •λ¦¬ν•΄μ„œ 올림!
βœ”οΈ DB νŠΈλžœμž­μ…˜ 정리 및 μΆ”κ°€ μ™„λ£Œ!

profile
김뉴비

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보