PDA

View Full Version : PLEASE HELP - Invalid property 'name' of bean class [org.springframework.ui.ModelMap]



a_subscriber
Aug 18th, 2009, 05:27 AM
my controller:


public class ProfilesController extends MultiActionController {
private ProfileManager profileManager;
private PermissionManager permissionManager;
...
public ModelAndView create(HttpServletRequest request,
HttpServletResponse response) throws Exception {
ModelMap model = new ModelMap();
List<Permission> permissions = permissionManager.getPermissionList();
model.addAttribute(new Profile());
model.addAttribute(permissions);
return new ModelAndView("profile", "commandName", model);
}


my jsp:


<form:form method="POST" action="add.htm" commandName="commandName">
<%@ include file="/WEB-INF/jsp/headerDetails.jsp"%>
<table width="645" border="0">
<tr>
<th class="styleHeader" colspan="2" scope="col"><spring:message
code="profile" /></th>
<th width="10" scope="col">&nbsp;</th>
<th class="styleHeader" width="349" scope="col"><spring:message
code="permissions" /></th>
</tr>
<tr>
<td><label><spring:message code="name" />*</label></td>
<td><form:input path="name" size="32" maxlength="30" /> <br>
<form:errors path="name" cssClass="styleErrorMessage" /></td>
<td>&nbsp;</td>
<td><label> <input type="checkbox" name="checkbox"
id="checkbox" /> Test</label></td>
</tr>
...


Why when try to show my jsp I get the next error:

org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/profile.jsp at line 25

22: </tr>
23: <tr>
24: <td><label><spring:message code="name" />*</label></td>
25: <td><form:input path="name" size="32" maxlength="30" /> <br>
26: <form:errors path="name" cssClass="styleErrorMessage" /></td>
27: <td>&nbsp;</td>
28: <td><label> <input type="checkbox" name="checkbox"


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
org.springframework.web.servlet.view.InternalResou rceView.renderMergedOutputModel(InternalResourceVi ew.java:236)
org.springframework.web.servlet.view.AbstractView. render(AbstractView.java:257)
org.springframework.web.servlet.DispatcherServlet. render(DispatcherServlet.java:1183)
org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:902)
org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.d oGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)


root cause
org.springframework.beans.NotReadablePropertyExcep tion: Invalid property 'name' of bean class [org.springframework.ui.ModelMap]: Bean property 'name' 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.getPrope rtyValue(BeanWrapperImpl.java:540)
org.springframework.beans.BeanWrapperImpl.getPrope rtyValue(BeanWrapperImpl.java:532)
org.springframework.web.servlet.support.BindStatus .<init>(BindStatus.java:147)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.getBindStatus(AbstractData BoundFormElementTag.java:172)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.getPropertyPath(AbstractDa taBoundFormElementTag.java:192)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.getName(AbstractDataBoundF ormElementTag.java:158)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.autogenerateId(AbstractDat aBoundFormElementTag.java:145)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.resolveId(AbstractDataBoun dFormElementTag.java:136)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.writeDefaultAttributes(Abs tractDataBoundFormElementTag.java:120)
org.springframework.web.servlet.tags.form.Abstract HtmlElementTag.writeDefaultAttributes(AbstractHtml ElementTag.java:379)
org.springframework.web.servlet.tags.form.InputTag .writeTagContent(InputTag.java:139)
org.springframework.web.servlet.tags.form.Abstract FormTag.doStartTagInternal(AbstractFormTag.java:90 )
org.springframework.web.servlet.tags.RequestContex tAwareTag.doStartTag(RequestContextAwareTag.java:7 7)
org.apache.jsp.WEB_002dINF.jsp.profile_jsp._jspx_m eth_form_005finput_005f0(profile_jsp.java:547)
org.apache.jsp.WEB_002dINF.jsp.profile_jsp._jspSer vice(profile_jsp.java:173)
org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
org.springframework.web.servlet.view.InternalResou rceView.renderMergedOutputModel(InternalResourceVi ew.java:236)
org.springframework.web.servlet.view.AbstractView. render(AbstractView.java:257)
org.springframework.web.servlet.DispatcherServlet. render(DispatcherServlet.java:1183)
org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:902)
org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.d oGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)

msmithi33
Aug 18th, 2009, 09:49 AM
I'm assuming name is a member of the Profile object, so change the path from 'name' to 'profile.name'.

a_subscriber
Aug 18th, 2009, 10:10 AM
I'm assuming name is a member of the Profile object, so change the path from 'name' to 'profile.name'.



<form:form method="POST" action="add.htm" commandName="commandName">
<%@ include file="/WEB-INF/jsp/headerDetails.jsp"%>
<table width="645" border="0">
<tr>
<th class="styleHeader" colspan="2" scope="col"><spring:message
code="profile" /></th>
<th width="10" scope="col">&nbsp;</th>
<th class="styleHeader" width="349" scope="col"><spring:message
code="permissions" /></th>
</tr>
<tr>
<td><label><spring:message code="name" />*</label></td>
<td><form:input path="profile.name" size="32" maxlength="30" />
<br>
<form:errors path="profile.name" cssClass="styleErrorMessage" /></td>
<td><td>${perms.name}</td></td>
</tr>

</table>
<p>*) <spring:message code="fields required" /></p>
</form:form>
</body>


Result:

org.apache.jasper.JasperException: org.springframework.beans.NotReadablePropertyExcep tion: Invalid property 'profile' of bean class [org.springframework.ui.ModelMap]: Bean property 'profile' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter?
org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
org.springframework.web.servlet.view.InternalResou rceView.renderMergedOutputModel(InternalResourceVi ew.java:236)
org.springframework.web.servlet.view.AbstractView. render(AbstractView.java:257)
org.springframework.web.servlet.DispatcherServlet. render(DispatcherServlet.java:1183)
org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:902)
org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.d oGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)


root cause
org.springframework.beans.NotReadablePropertyExcep tion: Invalid property 'profile' of bean class [org.springframework.ui.ModelMap]: Bean property 'profile' 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.getPrope rtyValue(BeanWrapperImpl.java:540)
org.springframework.beans.BeanWrapperImpl.getNeste dBeanWrapper(BeanWrapperImpl.java:447)
org.springframework.beans.BeanWrapperImpl.getBeanW rapperForPropertyPath(BeanWrapperImpl.java:424)
org.springframework.beans.BeanWrapperImpl.getPrope rtyValue(BeanWrapperImpl.java:530)
org.springframework.web.servlet.support.BindStatus .<init>(BindStatus.java:147)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.getBindStatus(AbstractData BoundFormElementTag.java:172)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.getPropertyPath(AbstractDa taBoundFormElementTag.java:192)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.getName(AbstractDataBoundF ormElementTag.java:158)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.autogenerateId(AbstractDat aBoundFormElementTag.java:145)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.resolveId(AbstractDataBoun dFormElementTag.java:136)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.writeDefaultAttributes(Abs tractDataBoundFormElementTag.java:120)
org.springframework.web.servlet.tags.form.Abstract HtmlElementTag.writeDefaultAttributes(AbstractHtml ElementTag.java:379)
org.springframework.web.servlet.tags.form.InputTag .writeTagContent(InputTag.java:139)
org.springframework.web.servlet.tags.form.Abstract FormTag.doStartTagInternal(AbstractFormTag.java:90 )
org.springframework.web.servlet.tags.RequestContex tAwareTag.doStartTag(RequestContextAwareTag.java:7 7)
org.apache.jsp.WEB_002dINF.jsp.profile_jsp._jspx_m eth_form_005finput_005f0(profile_jsp.java:500)
org.apache.jsp.WEB_002dINF.jsp.profile_jsp._jspSer vice(profile_jsp.java:173)
org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
org.springframework.web.servlet.view.InternalResou rceView.renderMergedOutputModel(InternalResourceVi ew.java:236)
org.springframework.web.servlet.view.AbstractView. render(AbstractView.java:257)
org.springframework.web.servlet.DispatcherServlet. render(DispatcherServlet.java:1183)
org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:902)
org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.d oGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)

msmithi33
Aug 18th, 2009, 10:30 AM
Dude, do a little leg work.


model.addAttribute("profile", new Profile());

a_subscriber
Aug 18th, 2009, 10:40 AM
Dude, do a little leg work.


model.addAttribute("profile", new Profile());



public class ProfilesController extends MultiActionController {
...
@Override
protected String getCommandName(Object command) {
return "commandName";
}
...
public ModelAndView create(HttpServletRequest request,
HttpServletResponse response) throws Exception {
List<Permission> permissions = permissionManager.getPermissionList();
ModelMap mm = new ModelMap();
mm.addAttribute("profile", new Profile());
mm.addAttribute("perms", permissions);
return new ModelAndView("profile", "commandName", mm);
}





<form:form method="POST" action="add.htm" commandName="commandName">
<%@ include file="/WEB-INF/jsp/headerDetails.jsp"%>
<table width="645" border="0">
<tr>
<th class="styleHeader" colspan="2" scope="col"><spring:message
code="profile" /></th>
<th width="10" scope="col">&nbsp;</th>
<th class="styleHeader" width="349" scope="col"><spring:message
code="permissions" /></th>
</tr>
<tr>
<td><label><spring:message code="name" />*</label></td>
<td><form:input path="profile.name" size="32" maxlength="30" />
<br>
<form:errors path="profile.name" cssClass="styleErrorMessage" /></td>
<td><td>${perms.name}</td></td>
</tr>

</table>
<p>*) <spring:message code="fields required" /></p>
</form:form>
</body>


Result:
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsp/profile.jsp at line 25

22: </tr>
23: <tr>
24: <td><label><spring:message code="name" />*</label></td>
25: <td><form:input path="profile.name" size="32" maxlength="30" />
26: <br>
27: <form:errors path="profile.name" cssClass="styleErrorMessage" /></td>
28: <td><td>${perms.name}</td></td>


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:416)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
org.springframework.web.servlet.view.InternalResou rceView.renderMergedOutputModel(InternalResourceVi ew.java:236)
org.springframework.web.servlet.view.AbstractView. render(AbstractView.java:257)
org.springframework.web.servlet.DispatcherServlet. render(DispatcherServlet.java:1183)
org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:902)
org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.d oGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)


root cause
org.springframework.beans.NotReadablePropertyExcep tion: Invalid property 'profile' of bean class [org.springframework.ui.ModelMap]: Bean property 'profile' 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.getPrope rtyValue(BeanWrapperImpl.java:540)
org.springframework.beans.BeanWrapperImpl.getNeste dBeanWrapper(BeanWrapperImpl.java:447)
org.springframework.beans.BeanWrapperImpl.getBeanW rapperForPropertyPath(BeanWrapperImpl.java:424)
org.springframework.beans.BeanWrapperImpl.getPrope rtyValue(BeanWrapperImpl.java:530)
org.springframework.web.servlet.support.BindStatus .<init>(BindStatus.java:147)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.getBindStatus(AbstractData BoundFormElementTag.java:172)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.getPropertyPath(AbstractDa taBoundFormElementTag.java:192)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.getName(AbstractDataBoundF ormElementTag.java:158)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.autogenerateId(AbstractDat aBoundFormElementTag.java:145)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.resolveId(AbstractDataBoun dFormElementTag.java:136)
org.springframework.web.servlet.tags.form.Abstract DataBoundFormElementTag.writeDefaultAttributes(Abs tractDataBoundFormElementTag.java:120)
org.springframework.web.servlet.tags.form.Abstract HtmlElementTag.writeDefaultAttributes(AbstractHtml ElementTag.java:379)
org.springframework.web.servlet.tags.form.InputTag .writeTagContent(InputTag.java:139)
org.springframework.web.servlet.tags.form.Abstract FormTag.doStartTagInternal(AbstractFormTag.java:90 )
org.springframework.web.servlet.tags.RequestContex tAwareTag.doStartTag(RequestContextAwareTag.java:7 7)
org.apache.jsp.WEB_002dINF.jsp.profile_jsp._jspx_m eth_form_005finput_005f0(profile_jsp.java:500)
org.apache.jsp.WEB_002dINF.jsp.profile_jsp._jspSer vice(profile_jsp.java:173)
org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)
org.springframework.web.servlet.view.InternalResou rceView.renderMergedOutputModel(InternalResourceVi ew.java:236)
org.springframework.web.servlet.view.AbstractView. render(AbstractView.java:257)
org.springframework.web.servlet.DispatcherServlet. render(DispatcherServlet.java:1183)
org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:902)
org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:807)
org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.d oGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)