2021. 12. 1. 10:57γSpring
https://hyejin.tistory.com/270?category=1022293
Spring MVC κ²μν ꡬνμ μ¬κΈ°μ μμΈν λ³Ό μ μλ€.
μ λ²μ νλ κ²μνμμλ κΈ μμ± νΌμμ
μμ±μλ μ λͺ© λ±μ μ λ ₯νμ§ μκ³ μ 'λ±λ‘' λ²νΌμ λλ₯΄λ©΄ λ°μ΄ν°λ² μ΄μ€μμ ν μ΄λΈ μμ±ν λ μμ±μλ μ λͺ©μ NOT NULLλ‘ μ€μ νκΈ° λλ¬Έμ
μλ¬κ° λ°λ‘ λ°μν κ²μ΄λ€.
κ·Έλ¬λ―λ‘ μ΄λ¬ν μν©μ λ°©μ§νκΈ° μν΄μ λ§μ½ μ¬μ©μκ° μμ±μλ μ λͺ©μ μμ±νμ§ μμλ€λ©΄ μλ¦Ό λ©μμ§λ₯Ό λμΈ μ μλλ‘ ν΄μΌνλ€.
https://hyejin.tistory.com/269?category=1022293
μ΄λ λ°°μ λ νΌ λ°μ΄ν° κ²μ¦ Validatorλ₯Ό μ¬μ©ν΄μ νΌ λ°μ΄ν° κ²μ¦νλ κ²μ μΆκ°ν κ²μ΄λ€!
1οΈβ£ BoardValidator.java
Validator μΈν°νμ΄μ€λ₯Ό ꡬννλ BoardValidator ν΄λμ€λ₯Ό μμ±νλ€.
β Validatorλ μ€νλ§μμ μ 곡νλ νΌ λ°μ΄ν° κ²μ¦ κ°μ²΄μ΄λ€!
validate() μμλ μ£Όμ΄μ§ κ°μ²΄μΈ targetμ μ ν¨μ± κ²μ¬λ₯Ό νκ³ , μ ν¨μ± κ²μ¬νμ λ μ€λ₯κ° μμ λλ μ£Όμ΄μ§ κ°μ²΄μ μ΄ μ€λ₯λ€μ errorsμ λ±λ‘ν΄μ€λ€.
κ·Έλ¦¬κ³ rejectValue()μ νΌ λ°μ΄ν° μλ¬ μ 보λ₯Ό filedμ errorCodeλ‘ λ±λ‘ν΄μ€λ€.
2οΈβ£ BoardController.java
WriteOk.doμμλ κΈ μμ± νμ΄μ§μμ μ λͺ©κ³Ό μμ±μλ₯Ό μ λ ₯νμ§ μμΌλ©΄ μλ¬κ° μλ€κ³ νλ¨ν΄ board/list.doλ‘ κ°μ§ μλλ‘ νλ€.
μμ νμ΄μ§μμλ μμ μ λͺ©μ λΉμΉΈμΌλ‘ λκ³ μμ νκΈ° λ²νΌμ λλ₯΄λ©΄ μλ¬κ° μλ€κ³ νλ¨ν΄ board/list.doλ‘ λμ΄κ°μ§ μλλ‘ νλ€.
κΈμ μμ±κ³Ό μμ μμ νΌ λ°μ΄ν° μ ν¨μ±μ κ²μ¦ν΄μΌ νκΈ° λλ¬Έμ κ·Έμ ν΄λΉνλ νΈλ€λ¬ λ©μλμ BindingResult 맀κ°λ³μλ₯Ό μΆκ°ν΄μ€λ€.
β BindingResult
: λ§μΉ handlerμ Model 맀κ°λ³μμ λ§μ°¬κ°μ§λ‘ DispatcherServletμμ μ 곡(μλ μ£Όμ ) ν΄μ£Όλ κ°μ²΄λ‘
validatorκ° μ ν¨μ± κ²μ¬λ₯Ό ν κ²°κ³Όκ° λ΄κΈ°λ κ°μ²΄μ΄λ€.
λ°λΌμ resultμλ validatorκ° μ ν¨μ± κ²μ¬λ₯Ό ν κ²°κ³Όκ° λ΄κΈ΄ κ°μ²΄μ΄λ€.
showErrors()λ Errorsμμ λ΄κΈ΄ μλ¬λ€μ μΆλ ₯ν΄ νμΈνκΈ° μν΄ μΆκ°λ‘ μμ±ν΄μ€ λ©μλμ΄λ€. (λ°λμ ꡬνν΄μΌνλ λ©μλλ μλ)
initBinder()λ Validator μΈν°νμ΄μ€λ₯Ό ꡬνν ν΄λμ€μ validate() λ©μλλ₯Ό μ§μ νΈμΆν΄μ μ¬μ©νμ§ μκ³ μ€νλ§ νλ μμν¬μμ νΈμΆνκΈ° μν΄ λ§λ€μ΄μ€ λ©μλμ΄λ€.
@InitBinder μ΄λ Έν μ΄μ μ ν΅ν΄ BoardController ν΄λμ€μ handler μμ νΌ λ°μ΄ν°λ₯Ό λ°μΈλ©ν λ κ²μ¦νλ κ°μ²΄λ₯Ό μ§μ ν΄μ€λ€.
κ°κ°μ λ©μλμ @Validλ₯Ό μΆκ°ν΄μ£Όλ©΄ λ°μΈλ©νλ μμ μμ @InitBinderλ‘ λ±λ‘λ validator κ°μ²΄μΈ BoardValidorλ‘ κ²μ¦νλ€!
3οΈβ£ write.jsp , update.jsp
4οΈβ£ κ²°κ³Ό