form:form 구문에서 commandName 필수값인가요?
- 작성자 :
- j***s
- 작성일 :
- 2023-07-31 22:51:14
- 조회수 :
- 1,782
- 구분 :
- 실행환경 / 3.1
- 진행상태 :
- 완료
Q
안녕하세요.
스프링태그의 <form:form> 사용 시, commandName속성은 필수로 써야하는건가요?
사용을 안한다면 기본값이 command?라고 하던데, 결국 commandName같은 속성을 쓰지않는다면, 컨트롤러에서 ModelAttribute("Command")를 쓴다거나 해야지 오류가 안나는건지?
왜냐면 <form:form> 태그를 사용중인데, commandName속성없이 컨트롤러단에서 @RequestMapping으로 url매핑 후에, HttpServletRequest객체로 그냥 form 내용 가져오려고 했더니, 바로 그냥 컨트롤러 넘어오는 도중에 에러가 뜨더라구요. 그러다가 commandName 지정해주고, 해당 commandName값을 컨트롤러에서 @ModelAttribute로 받아주니 오류가 수정되었습니다. 즉, 같은 코드인데 commandName을 쓰기 전에는 HttpSevletRequest만 써서 데이터를 받을려고 했음에도 오류가 났는데(이 경우 @ModelAttribute 사용안했음) 뭔 차이인지 궁금하네요.
두번째로 spring tag의 <form:form>에서 . commandName과 modelAttribte 2가지 있다는데 무슨 차이인지 궁금합니다
세번째로 이 spring tag를 제대로 배울 수 있는 학습터가 있는지 궁금합니다. 구글링으로 하다보니 잘못된 정보도 많고.. 한계가 있는거 같아요 무엇보다 전자정부프레임워크 교육을 맛보기로 조금씩 봤는데, 전자정부프레임워크만의 설정정보? AOP설정? 등이 궁금했는데 그런건 설명없고, 왜 전자정부프레임워크를 쓰는지, 스펙 같은것만 알려줘서 아쉽..
스프링태그의 <form:form> 사용 시, commandName속성은 필수로 써야하는건가요?
사용을 안한다면 기본값이 command?라고 하던데, 결국 commandName같은 속성을 쓰지않는다면, 컨트롤러에서 ModelAttribute("Command")를 쓴다거나 해야지 오류가 안나는건지?
왜냐면 <form:form> 태그를 사용중인데, commandName속성없이 컨트롤러단에서 @RequestMapping으로 url매핑 후에, HttpServletRequest객체로 그냥 form 내용 가져오려고 했더니, 바로 그냥 컨트롤러 넘어오는 도중에 에러가 뜨더라구요. 그러다가 commandName 지정해주고, 해당 commandName값을 컨트롤러에서 @ModelAttribute로 받아주니 오류가 수정되었습니다. 즉, 같은 코드인데 commandName을 쓰기 전에는 HttpSevletRequest만 써서 데이터를 받을려고 했음에도 오류가 났는데(이 경우 @ModelAttribute 사용안했음) 뭔 차이인지 궁금하네요.
두번째로 spring tag의 <form:form>에서 . commandName과 modelAttribte 2가지 있다는데 무슨 차이인지 궁금합니다
세번째로 이 spring tag를 제대로 배울 수 있는 학습터가 있는지 궁금합니다. 구글링으로 하다보니 잘못된 정보도 많고.. 한계가 있는거 같아요 무엇보다 전자정부프레임워크 교육을 맛보기로 조금씩 봤는데, 전자정부프레임워크만의 설정정보? AOP설정? 등이 궁금했는데 그런건 설명없고, 왜 전자정부프레임워크를 쓰는지, 스펙 같은것만 알려줘서 아쉽..
환경정보
-
- OS 정보 :
- 표준프레임워크 버전 :
- JDK(JRE) 정보 :
- WAS 정보 :
- DB 정보 :
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터입니다.
표준프레임워크센터입니다.
1. <form:form>는 커맨드 객체를 가져오려고 하기 때문에 커맨드 이름이 필요한데
이는 commandNam(혹은 modelAttribte)에 사용하려는 객체(VO)의 이름이고
해당 객체에 만든 필드와 form 요소들을 매핑하게 되므로
업무에서는 객체 이름을 분명하게 부여하는게 유리합니다.
하지만, 스프링 폼 역시 서블릿에서 파생된 것이므로
HttpServletRequest를 사용할 수 있습니다.
자세한 내용은 스프링 공식 사이트에서 확인하시기 바랍니다.
https://docs.spring.io/spring-framework/docs/5.3.29/reference/html/web.html#mvc-view-jsp-formtaglib
2. 스프링 버전에 따라 달라집니다.
즉, 스프링 4.* 버전(표준프레임워크 3.10 버전 이하)까지는 commandName을 사용할 수 있는데
그 이상(표준프레임워크 4.0 버전 이상)에서는 modelAttribte을 사용해야 합니다.
3. 표준프레임워크 교육과정의 경우 초급자 레벨에서 진행되므로
스프링 프레임워크의 심화학습이 필요한 경우는 다른 교육과정을 참고하시기 바랍니다.