하... 난리도 아니었네..
평소처럼 VO를 셋팅하고 등등을 진행하고 있는데 문득 뜬 오류...
?????
bean name 이 "command" ??? 이런거 내 프로그램에 셋팅한적 없는데?? 라며 오지게 찾아봄...
검색해도 안나옴... 저건 머지...
일단 찾다보니 sql-mapper-config.xml에도 VO 등록이 안되어있어서 재빨리 등록!
인데... 이래도 동일한 오류 발생
jsp파일에 셋팅한게
<form:form commandName="UserVO" method="post"> <div class="input_box"> <div class="input_line clearfix"> <span>아이디</span> <form:input type="text" path="userId" placeholder="아이디를 입력하세요" maxlength="20" /> </div> <div class="input_line mr_1 clearfix"> <span>비밀번호</span> <form:input type="password" path="userPw" placeholder="비밀번호를 입력하세요" maxlength="16" value="" /> </div> </div> </form:form> |
이부분에서 오류가 나는데 머지??라고 한참 찾아봄
path="userId"를 적은부분에서 오류가 발생한거는 발견함.
근데 왜 오류인지 알수가 없음 지금까지 저렇게 계속 써왔는데 이전에 다른 프로젝트 소스를 봐도 동일함.
일단 "command"라는 빈네임에서 멘붕이와서 며칠동안 찾아보게 되었는데
<form:form commandName="UserVO" method="post"> ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ <form:form modelAttribute="UserVO" method="post"> |
이렇게 변경하니 해결됨.
commandName아니면 modelAttribute를 사용하는건 알고 있었지만 보통 쓰던걸 쓰게되서 commandName를 계속 쓰고있었는데 여기서 오류가 발생하게 될거라고는 상상도 못함..
왜그런가 더 찾아보니 스프링 버전때문에 발생된 문제였다.
Spring 4.x까지는 commandName를 사용해도 되었었는데
Spring 5.x부터는 commandName 대신 modelAttribute를 사용해야 오류가 없다고 한다.
아오...
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/015.gif)