2021. 12. 1. 10:57ใSpring
https://hyejin.tistory.com/270?category=1022293
Spring MVC ๊ฐ๋จํ ๊ฒ์ํ ๋ง๋ค๊ธฐ
๊ฐ๋จํ ์ฌ์ฉ์ ๊ด๋ฆฌ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์ด๋ณด๊ณ , ์์ ์ jsp๊ณต๋ถํ ๋ ๋ง๋ค์๋ jdbc ๊ฒ์ํ์ ์์ฉํด Spring MVC ๋ฒ์ ์ผ๋ก ๊ฒ์ํ์ ๋ง๋ค์ด๋ณผ ์์ ์ด๋ค. ์ต์ข ๊ฒฐ๊ณผ ํ๋ฉด์ผ๋ก ๊ธ ์์ฑ, ์์ , ์ญ์ , ์กฐํ๊ฐ
hyejin.tistory.com
Spring MVC ๊ฒ์ํ ๊ตฌํ์ ์ฌ๊ธฐ์ ์์ธํ ๋ณผ ์ ์๋ค.
์ ๋ฒ์ ํ๋ ๊ฒ์ํ์์๋ ๊ธ ์์ฑ ํผ์์

์์ฑ์๋ ์ ๋ชฉ ๋ฑ์ ์ ๋ ฅํ์ง ์๊ณ ์ '๋ฑ๋ก' ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ํ ์ด๋ธ ์์ฑํ ๋ ์์ฑ์๋ ์ ๋ชฉ์ NOT NULL๋ก ์ค์ ํ๊ธฐ ๋๋ฌธ์

์๋ฌ๊ฐ ๋ฐ๋ก ๋ฐ์ํ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์ด๋ฌํ ์ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด์ ๋ง์ฝ ์ฌ์ฉ์๊ฐ ์์ฑ์๋ ์ ๋ชฉ์ ์์ฑํ์ง ์์๋ค๋ฉด ์๋ฆผ ๋ฉ์์ง๋ฅผ ๋์ธ ์ ์๋๋ก ํด์ผํ๋ค.
https://hyejin.tistory.com/269?category=1022293
Spring Validation ํผ ๋ฐ์ดํฐ ๊ฒ์ฆ Validator, @Vaild
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋๋ฐ ์์ด ํผ ๋ฐ์ดํฐ ๊ฒ์ฆ์ ๋ฐ๋์ ํด์ผํ๋ ๊ณผ์ ์ค ํ๋์ด๋ค. ๋จผ์ ํด๋ผ์ด์ธํธ์์ submit ํ๊ธฐ์ ์ ๊ฒ์ฆ์ ํด์ค์ผํ๊ณ , (JavaScript) ๊ทธ ๋ค์ ์๋ฒ์์๋ ๊ฒ์ฆ์ ํด์ค์ผํ
hyejin.tistory.com
์ด๋ ๋ฐฐ์ ๋ ํผ ๋ฐ์ดํฐ ๊ฒ์ฆ 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๏ธโฃ ๊ฒฐ๊ณผ



