I am getting the following exception in Spring MVC application:
org.springframework.beans.NotReadablePropertyException: Invalid property 'moduleName' of bean class [java.lang.String]: Bean property 'moduleName' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:726)
org.springframework.beans.BeanWrapperImpl.getPropertyValue(BeanWrapperImpl.java:717)
org.springframework.web.servlet.support.BindStatus.<init>(BindStatus.java:149)
JSP Code
<form:form method="post" action="/submitSurvey" modelAttribute="surveyModule" >
<form:label path="moduleName">Module Name</form:label>
<form:input path="moduleName" />
<input type="submit" value="Save"/>
</form:form>
Spring Controller
@RequestMapping(value = "/submitSurvey", method = RequestMethod.POST)
public String submitSurvey(@ModelAttribute("surveyModule")SurveyModule sm, Model model){
surveyService.setSurveyModule(sm);
return "surveyHome";
}
Bean: SurveyModule.java
@Entity
@Table(name="SURVEYMODULE")
public class SurveyModule {
@Id
@Column(name="SurveyModuleId")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer surveyModuleId;
private String moduleName;
public Integer getSurveyModuleId() {
return surveyModuleId;
}
public void setSurveyModuleId(Integer surveyModuleId) {
this.surveyModuleId = surveyModuleId;
}
public String getModuleName() {
return moduleName;
}
public void setModuleName(String moduleName) {
this.moduleName = moduleName;
}
}
The property moduleName exist in the bean class. While I am able to use the property to get data, why I am getting this error? How can I correct this?