org.springframework.beans.NotReadablePropertyException
- 작성자 :
- 김*석
- 작성일 :
- 2013-05-13 18:28:31
- 조회수 :
- 1,592
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
get, setter bean을 이용하여 처리리하는 것을
HashMap으로 변경을 해봤습니다.
화면 처리 외에는 오류가 없는데 화면의 taglib에서 오류가 나서 ...
오류:org.springframework.beans.NotReadablePropertyException: Invalid property 'name' 오류가 생겼습니다.
jsp의 오류 line을 보니 <form:input path="name" size="20"/> 에서 나는 군요.
"www.springframework.org/tags/form"을 사용하게 되면 반드시 get,setting bean객체를 사용해야 하는 것인지.
아니면 방법이 있으시면 좀 부탁드립니다.
get, setter 객체 관리가 너무 어려워 HashMap으로 변경을 할려구 합니다.
꼭 부탁좀.....드립니다.
HashMap으로 변경을 해봤습니다.
화면 처리 외에는 오류가 없는데 화면의 taglib에서 오류가 나서 ...
오류:org.springframework.beans.NotReadablePropertyException: Invalid property 'name' 오류가 생겼습니다.
jsp의 오류 line을 보니 <form:input path="name" size="20"/> 에서 나는 군요.
"www.springframework.org/tags/form"을 사용하게 되면 반드시 get,setting bean객체를 사용해야 하는 것인지.
아니면 방법이 있으시면 좀 부탁드립니다.
get, setter 객체 관리가 너무 어려워 HashMap으로 변경을 할려구 합니다.
꼭 부탁좀.....드립니다.
A
안녕하세요. 김지석님.
일반적인 <input type=".." />으로 정의하신 경우라면 다음과 같은 CommandMapArgumentResolver를 등록해 주시면 Controller 상의 메소드에 Map을 사용하실 수 있습니다.
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<bean class="egovframework.com.cmm.web.EgovBindingInitializer"/>
</property>
<property name="customArgumentResolvers">
<list>
<bean class="egovframework.rte.ptl.mvc.bind.CommandMapArgumentResolver"/>
</list>
</property>
</bean>
public String selectClubInfByCmmntyId(@ModelAttribute("searchVO") ClubVO clubVO, Map<String, Object> commandMap, ModelMap model) throws Exception {
...
}
그러나, spring의 form tag library는 setter/getter를 갖는 VO 형태가 반드시 필요합니다.
이 경우는 form tag library 대신 일반적인 html의 input tag로 변경을 하시고 위의 CommandMapArgumentResolver를 활용해 보시는 것도 방법이실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.
일반적인 <input type=".." />으로 정의하신 경우라면 다음과 같은 CommandMapArgumentResolver를 등록해 주시면 Controller 상의 메소드에 Map을 사용하실 수 있습니다.
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="webBindingInitializer">
<bean class="egovframework.com.cmm.web.EgovBindingInitializer"/>
</property>
<property name="customArgumentResolvers">
<list>
<bean class="egovframework.rte.ptl.mvc.bind.CommandMapArgumentResolver"/>
</list>
</property>
</bean>
public String selectClubInfByCmmntyId(@ModelAttribute("searchVO") ClubVO clubVO, Map<String, Object> commandMap, ModelMap model) throws Exception {
...
}
그러나, spring의 form tag library는 setter/getter를 갖는 VO 형태가 반드시 필요합니다.
이 경우는 form tag library 대신 일반적인 html의 input tag로 변경을 하시고 위의 CommandMapArgumentResolver를 활용해 보시는 것도 방법이실 것 같습니다.
그럼, 즐거운 하루되십시오.
감사합니다.